LCU.API.Collections.RepoApi
This class can be used to create the alerts in the "Days + ' days in REHO. '" series. for both REHO and O4R
Use to send something to the logger from the client
Logs a message from a client.
Cookies: None required or set.
Security: Must have a valid JWT token retrieved from Azure AD, with ADMIN role.
This strategy uses the suggested price from the ImsAutoFileData entry for the auction.
This strategy uses the AutoIms MMR values, the values from Nada, and the condition from AutoIms along
with a specific formula, to calculate a floor.
If an entity cannot be found, that specific error can allow for a 404 or 400 with more detail to be
returned. So specify that to the API layer.
Do not want to expose database and related exceptions to the controllers / web layer.
The lower layers log what happened for developers, then return a general error; unless
a more specific error can be returned in a way to allow the client to act (such as NotFound).
Special Notes.
1. Direct injection of services cannot be done, the main API context is on it's own
scope/thread. So instead, the scope factory is passed, so that this can create scopes.
2. This is designed to use 5 threads, from within an IHostedService thread context, to
process queues. It's designed to do this in 'batches' to simulate a batch job, which
is where the creation of the RunInfo comes into scope.
3. There is a main 'thread' here, which waits for a 'batch' of work to be complete.
4. Under the main thread, there are 5 worker threads, communicating using two queues besides
the main Rabbit queue. The queues are used to set something up for processing (_inputQueue)
and to mark something as done processing (_outputQueue).
This function is the main function run by the IHostedService interface, so
should be considered the 'main' here.
This function will attempt to create an Auction through AutoIMS.
It does not catch and will throw if anything goes wrong.
Assume lack of exception equals success.
This function will attempt to remove an Auction through AutoIMS.
It does not catch and will throw if anything goes wrong.
Assume lack of exception equals success.
This function will attempt to call AutoIMS with an auction floor, and will not update the
floor related values unless it succeeds
This function will attempt to call AutoIMS and set the title sent date, and will not update the
title sent related values unless it succeeds
This function will attempt to call AutoIMS and set the redeemed date, and will not update the
redeemed date unless it succeeds
This function will attempt to call AutoIMS to place a hold, and will not update the
hold related values unless it succeeds
A set of notes comes from AutoIMS and must be inserted (But not updated).
Duplicates/Existing are checked for based on writer, time and text.
Each row in the Data file is an ImsAutoAuctionData row used to track the status of
a Repo at auction and assist in setting the floor.
Take the rows with only account and discard them, using the account no to update the other rows.
Each row in the CSV does not have CustomerAccountNo, only the first row of each set.
Further, if a row has a customer account no, it has nothing else.
These alerts run before the account is checked to see if it was moved to an un-allowed status.
What is this moves the status to an un-allowed status?
These alerts run after the account has been updated or created and is the primary set of alert checks.
High Risk function because of string comparison and unknown mapping.
The old system got the integer from the database.
The new system gets a string from the web service.
This maps the new string to the old integer, if borrower types start
showing up wrong, look here...
If the status changed to 04R from not-O4R.
Is there a repo company assignment (even the default), if not assign one.
If there if a repo company assignment, but the status has changed, forcibly re-assign default
When an account changes to 04R, update all relevant fields/dates.
if the status was O4R and is now REPO, update date hooked (picked up).
Attempts to select the repo account that should be updated. Since we have to go by AccountNo and there
may be more than one. Try to return an open account, and log if it detects more than one.
TODO #7712
Convert a Stage from a case to a RepoAccount status.