---
title: MissingTimeLossService
summary: API reference for MissingTimeLossService.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Services
reference_type: package
---

# 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
