Skip to content

ClaimContactService

Implements IClaimContactService, resolving role-specific claim contacts (responsible adjuster, claims assistant, supervisor, vocational adjuster, third-party adjuster, return-to-work adjuster, policy safety-management consultant) by combining claim responsibility/case data from IClaimQueryProvider with directory lookups via IUserProfileService. It duplicates the same resolution logic found in ContactsNodeBuilder but exposes it as a standalone, injectable service rather than a fluent per-claim builder.

Purpose

  • Resolves the claim's responsible adjuster contact, filling in pseudo-user phone/name when the responsibility has no directory mail ID.
  • Resolves the claims assistant contact from the claim responsibility record.
  • Resolves the claim supervisor contact, using the adjuster's organizational manager for secure claims and the stored responsibility supervisor otherwise.
  • Resolves vocational adjuster, third-party adjuster, return-to-work adjuster, and policy safety-management-consultant contacts from their respective claim/case lookups.
  • Resolves an adjuster's location via GetAdjusterLocation-style lookup based on a ClaimResponsibility.

Context

  • Namespace: SAIF.Services.Claims.Information
  • Assembly/package: SAIF.Services (packaged inside the SAIF.SAIFCode.Core NuGet package)

Public members

Member Signature Purpose
ClaimContactService(profile, claimQuery) public ClaimContactService(IUserProfileService profile, IClaimQueryProvider claimQuery) Stores the user-profile service and claim query provider used by all contact-resolution methods.
GetResponsibleAdjuster(claimId) public ContactItem GetResponsibleAdjuster(long claimId) Returns the adjuster contact for the claim's responsibility record, with pseudo-user phone/name fallback, or an empty ContactItem if no responsibility/identifier exists.
GetClaimsAssistant(claimId) public ContactItem GetClaimsAssistant(long claimId) Returns the "Claim assistant" contact resolved from the responsibility record's claim-assistant mail ID, or an empty ContactItem if none is set.
GetSupervisor(claimId) public ContactItem GetSupervisor(long claimId) Returns the "Claim supervisor" contact — the adjuster's manager for secure claims (worker has a hostile-worker code), otherwise the responsibility's stored supervisor (skipped if the supervisor is the same person as the adjuster).
GetVocationAdjuster(claimId) public ContactItem GetVocationAdjuster(long claimId) Returns the "Voc Coordinator" contact from the claim's vocational responsibility, falling back to the raw user ID as the formatted name when no directory name is found.
GetThirdPartyAdjuster(claimId) public ContactItem GetThirdPartyAdjuster(long claimId) Returns the "3rd Party" contact resolved from the claim's third-party case adjuster user name, or an empty ContactItem if none exists.
GetRtwAdjuster(claimId) public ContactItem GetRtwAdjuster(long claimId) Returns the "Return to work" contact resolved from the claim's active RTW load assignment (the first assignment with no expiration date), or an empty ContactItem if none is active.
GetPolicySmcContact(claimId) public ContactItem GetPolicySmcContact(long claimId) Returns the "Safety Mgt Consultant" contact resolved from the claim's policy safety-management-consultant team function.
GetUserContactInfo(mailId) public ContactItem GetUserContactInfo(string mailId) Resolves a mail ID to a ContactItem, preferring the SAIF employee directory (GetSaifUser) and falling back to application user records (GetApplicationUser); returns an empty ContactItem if neither resolves.

Behavioral notes

  • Secure-claim detection for GetSupervisor is based on whether the claim worker's HostileWorker.Code (trimmed) is non-empty.
  • Each Get* method returns an empty ContactItem rather than null when the underlying data is missing, keeping the API null-safe for callers.

Constraints and usage notes

  • GetUserContactInfo lower-cases the mail ID before the SAIF-user lookup but not before the application-user fallback lookup.

Sources

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