MissingTimeLossService¶
Implements IMissingTimeLossService, scanning IMissingTimeLossRepository.MissingTimeLossPayments for payments potentially missing a time-loss prorate, checking each claim against the imaging system (IImagingClient.Exists) for a "Zero Prorate Letter" created today, and emailing a summary of confirmed missing-payment claims via IEmailService when any are found.
Purpose¶
- Identifies payments with potentially missing time-loss data from the missing-time-loss repository.
- Filters out claims that already have a same-day "Zero Prorate Letter" on file in the imaging system, keeping only genuinely unresolved cases.
- Sends a formatted summary email (claim number, update user, update date, run type per line) to a configured recipient list when unresolved missing-time-loss payments remain.
- Returns the count of confirmed missing-time-loss payments so callers (e.g. a batch job) can log or report results.
Context¶
- Namespace:
SAIF.Services.Claims.Information - Assembly/package:
SAIF.Services(packaged inside theSAIF.SAIFCode.CoreNuGet package)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| MissingTimeLossService(environmentService, emailService, missingTimeLossRepo, imageClient, emailRecipients) | public MissingTimeLossService(IEnvironmentService environmentService, IEmailService emailService, IMissingTimeLossRepository missingTimeLossRepo, IImagingClient imageClient, string emailRecipients) |
Validates all required dependencies are non-null and stores them, along with the configured email recipient list, for use by SendMissingTimeLossReport. |
| SendMissingTimeLossReport(controlLog) | public long SendMissingTimeLossReport(ILogWriter controlLog) |
For each potential missing-payment claim, logs progress and checks the imaging system for an existing same-day "Zero Prorate Letter"; claims without one are collected, emailed as a summary if any exist, and the count of such claims is returned. |
Behavioral notes¶
- The imaging existence check truncates the claim number to its first 7 characters (
payment.ClaimNumber.Substring(0, 7)) when querying and logging. - The email is only sent when at least one missing payment is confirmed (
missingPayments.Count > 0); no email is sent if all payments have a same-day letter on file. - The
MailMessageused for the email is disposed in afinallyblock, ensuring cleanup even ifSendEmailthrows.
Constraints and usage notes¶
- The sender address is read at send time from configuration via
IEnvironmentService.GetConfigSetting("Noreplyemailsenderaddress"), so a missing/invalid setting will cause the send to fail. - Requires a valid
ILogWriterargument; the method enforces this withEnforce.ArgumentNotNull.
Sources¶
- Services/SAIF.Services/Claims/Information/MissingTimeLossService.cs