Skip to content

OP-019: Resolve an ADP employee id to a SaifUser via its AD account

GetSaifUserByEmployeeId is invoked over the Security route on SAIF.Services.WCF.Services.Security.SecurityService; this page documents the process end to end, from route dispatch to the message the caller receives.

Field Value
Operation ID OP-019
Trigger Caller invokes GetSaifUserByEmployeeId over the Security route.
Entry operation GetSaifUserByEmployeeId
Owning component SAIF.Services.WCF.Services.Security.SecurityService.GetSaifUserByEmployeeId
Inputs Request message parts listed below
Outputs An AD-projected SaifUser for the employee's resolved user id, falling back to the ADP projection.
Failure behavior Generic SOAP fault, per Faults and error pipeline

Request and response

Direction Element Type Declared in Notes
Request employeeId string BCL (System) ADP employee identifier to resolve to a SaifUser via the associated AD account. (Yes)
Response SaifUser SaifUser External contracts assembly (SAIF.Services.WCF.Contracts / framework closure) ** An AD-projected SaifUser for the employee's resolved user id, falling back to the ADP projection.

Steps

  1. LogRequestDetails logs the operation name and arguments (BR-WCF-032).
  2. TryGetSaifUserByEmployeeId queries Employee by upper-cased id; a miss returns null; a hit resolves the AD user for that employee's user id and falls back to the ADP projection (BR-WCF-023a, BR-WCF-028a).
  3. Return.
  4. On failure: a directory or Oracle/NHibernate exception is logged by the installed error handler and surfaced as a generic SOAP fault with exception detail included.

Process flow

The following diagram visualizes this process's control flow.

flowchart TD
    A["Log request details"]
    B["TryGetSaifUserByEmployeeId queries Employee<br>by upper-cased id"]
    B1{"Employee found?"}
    B2["Miss: return null"]
    B3["Hit: resolve the AD user for that<br>employee's user id and fall back to<br>the ADP projection"]
    C["Return."]
    A --> B
    B --> B1
    B1 -->|"No"| B2
    B1 -->|"Yes"| B3
    B2 --> C
    B3 --> C

Transaction and side effects

Aspect Finding
Unit of work OracleUnitOfWorkFactory (EXTUR)
Commit point Not applicable — read only
Records written Employee (read only)
Downstream calls Active Directory (SAIF domain)
Shared state touched None
Repeat-call behavior Idempotent read

Logging

Surface Written content
HttpContext.Current.Response.AppendToLog (LogRequestDetails) Writes IIS request-detail log lines when LOG_REQUEST_DETAILS is enabled
ErrorLogErrorHandler → LogService Failure-path exception logging only, carrying method signature, calling user and exception detail; see Faults and error pipeline

Faults and error handling

Failure Fault type the caller receives Produced by Source
Directory or Oracle/NHibernate exception Generic SOAP fault The ErrorLogErrorHandler installed by [LogErrorBehavior] src/WCF/SAIF.Services.WCF.Host/Services/Security/Users/UserFactory.cs

Authorization

Requirement Enforced by Source Applies to
None in code IIS authentication on the deployment (see Activation and hosting) src/WCF/SAIF.Services.WCF.Host/Services/Security/SecurityService.cs This operation

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • src/WCF/SAIF.Services.WCF.Host/Services/Security/SecurityService.cs
  • src/WCF/SAIF.Services.WCF.Host/Services/Security/Users/UserFactory.cs