Skip to content

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 the SAIF.SAIFCode.Core NuGet 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 MailMessage used for the email is disposed in a finally block, ensuring cleanup even if SendEmail throws.

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 ILogWriter argument; the method enforces this with Enforce.ArgumentNotNull.

Sources

  • Services/SAIF.Services/Claims/Information/MissingTimeLossService.cs