Skip to content

Operations

This host publishes 24 operations across six independent service classes: FileService (5), PreferenceService (3), WebContextService (3), ImagingService (2), FaxService (1), and SecurityService (10). Each service class's operations are documented in full on its own page under contracts/; this page is the catalog and hub.

This page is the operation catalog and hub. Each service class's operations are documented in detail on its own page under contracts/.

Operation surface derivation

Aspect Finding
Authoritative surface Route registrations + implementing class public members
Contract assembly SAIF.Services.WCF.Contracts — external
[OperationContract] visible in repository No — contract assembly is external
Operation naming Method name
Metadata document ?wsdl published

Because the six [ServiceContract] interfaces are not present in this repository, the operation names, parameters, and return types below are read from each service class's public members and cross-checked against the route registrations in src/WCF/SAIF.Services.WCF.Host/Global.asax.cs. Any [OperationContract] name override, [FaultContract] declaration, or IsOneWay setting present on the external interface could not be inspected; that limitation is a finding, not an omission, and is repeated on Architecture and Operations and processes.

Service class catalog

Service class Route Contract Operations Documentation
SAIF.Services.WCF.Services.FileService FileService IFileService — external 5 Details
SAIF.Services.WCF.Services.PreferenceService PreferenceService IPreferenceService — external 3 Details
SAIF.Services.WCF.Services.WebContextService WebContext IWebContextService — external 3 Details
SAIF.Services.WCF.Services.ImagingService Imaging IImagingService — external 2 Details
SAIF.Services.WCF.Services.FaxService Fax IFaxService — external 1 Details
SAIF.Services.WCF.Services.Security.SecurityService Security ISecurityService — external 10 Details

Contract assembly

Aspect Finding
Assembly SAIF.Services.WCF.Contracts
Location External to this repository
Referenced by SAIF.Services.WCF.Host (transitively, via SAIF.Framework.Core 2.0.22181.2)
Contract interfaces IFileService, IPreferenceService, IWebContextService, IImagingService, IFaxService, ISecurityService
Inspected No — resolved by name from the transitive package closure

Operation catalog

Operation Service class Input message Output message Faults Auth Rules
ReadFile SAIF.Services.WCF.Services.FileService string path, int byteLength byte[] Filesystem exception (IOException, UnauthorizedAccessException, FileNotFoundException) None in code BR-WCF-003, BR-WCF-004
ReadEntireFile SAIF.Services.WCF.Services.FileService string path byte[] Filesystem exception None in code BR-WCF-004
WriteFile SAIF.Services.WCF.Services.FileService string path, byte[] bytes void Filesystem exception None in code BR-WCF-004
DeleteFile SAIF.Services.WCF.Services.FileService string path void Filesystem exception None in code BR-WCF-004
Length SAIF.Services.WCF.Services.FileService string path long Filesystem exception None in code BR-WCF-004
GetPreferences SAIF.Services.WCF.Services.PreferenceService string applicationName, string pageName, string user IDictionary<string, string> Oracle/NHibernate exception None in code BR-WCF-002, BR-WCF-005
SavePreferences SAIF.Services.WCF.Services.PreferenceService string applicationName, string pageName, string user, IDictionary<string, string> preferences, string currentUser void ArgumentNullException (missing currentUser) None in code BR-WCF-002, BR-WCF-005
GetDefaultPrinter SAIF.Services.WCF.Services.PreferenceService string user string Directory exception None in code BR-WCF-012, BR-WCF-013
Get SAIF.Services.WCF.Services.WebContextService string applicationName, string sessionId IWebContext ArgumentNullException None in code BR-WCF-002, BR-WCF-014
Save SAIF.Services.WCF.Services.WebContextService string applicationName, string sessionId, IWebContext context void ArgumentNullException None in code BR-WCF-002, BR-WCF-011
CreateContext SAIF.Services.WCF.Services.WebContextService string contextId IWebContext None declared None in code BR-WCF-015
QueueImage SAIF.Services.WCF.Services.ImagingService byte[] file, string fileExtension, ImageConfig imageConfig, ApplicationEnvironment environment, ImageTaskConfig taskConfig long ArgumentNullException None in code BR-WCF-002, BR-WCF-004
ReserveImageId SAIF.Services.WCF.Services.ImagingService None long Oracle/NHibernate exception None in code BR-WCF-024
SendFax SAIF.Services.WCF.Services.FaxService SAIF.Core.Services.Documents.FaxConfig config void ArgumentNullException None in code BR-WCF-002, BR-WCF-004
IsAuthorized SAIF.Services.WCF.Services.Security.SecurityService string userId, string role bool SecurityException (uncategorized) None in code BR-WCF-018, BR-WCF-023
IsAuthorized2 SAIF.Services.WCF.Services.Security.SecurityService string userId, string role, bool tryInternalDomainFirst bool SecurityException (uncategorized) None in code BR-WCF-018, BR-WCF-023
GetUser SAIF.Services.WCF.Services.Security.SecurityService string userId User Directory or Oracle/NHibernate exception None in code BR-WCF-018a, BR-WCF-019a
GetSaifUserByUserId SAIF.Services.WCF.Services.Security.SecurityService string userId SaifUser Directory exception None in code BR-WCF-024a, BR-WCF-025a
GetSaifUserByEmployeeId SAIF.Services.WCF.Services.Security.SecurityService string employeeId SaifUser Directory or Oracle/NHibernate exception None in code BR-WCF-023a, BR-WCF-028a
GetUserIdForEmployeeId SAIF.Services.WCF.Services.Security.SecurityService string employeeId string Oracle/NHibernate exception None in code BR-WCF-022a, BR-WCF-032
GetExternalUser SAIF.Services.WCF.Services.Security.SecurityService string userId ExternalUser Oracle/NHibernate exception None in code BR-WCF-019a, BR-WCF-020a
GetExternalUserByCustomerId SAIF.Services.WCF.Services.Security.SecurityService string customerId, string userType ExternalUser Oracle/NHibernate exception None in code BR-WCF-019a, BR-WCF-020a
GetInjuredWorkerUserByCustomerId SAIF.Services.WCF.Services.Security.SecurityService string customerId ExternalUser Oracle/NHibernate exception None in code BR-WCF-019a, BR-WCF-020a
GetUsersByGroup SAIF.Services.WCF.Services.Security.SecurityService string groupName, string ldap, string domain, bool recurse, bool includeDisabled string[] Directory exception None in code BR-WCF-032, BR-WCF-035

Dispatch diagram

The following diagram visualizes how a caller reaches a handling operation.

flowchart TD
    REQ["SOAP request"] --> ROUTE{"Route match"}
    ROUTE -->|"/FileService"| FS["FileService"]
    ROUTE -->|"/PreferenceService"| PS["PreferenceService"]
    ROUTE -->|"/WebContext"| WC["WebContextService"]
    ROUTE -->|"/Imaging"| IM["ImagingService"]
    ROUTE -->|"/Fax"| FX["FaxService"]
    ROUTE -->|"/Security"| SEC["SecurityService"]
    ROUTE -->|"No match"| NF["HTTP 404<br>no service at address"]
    FS --> OPSEL{"Operation selected<br>by SOAP action"}
    PS --> OPSEL
    WC --> OPSEL
    IM --> OPSEL
    FX --> OPSEL
    SEC --> OPSEL
    OPSEL -->|"Known operation"| NOAUTH["No authorization check<br>None in code"]
    OPSEL -->|"Unknown action"| ACTFAULT["ActionNotSupported fault"]
    NOAUTH --> OP["Operation body executes"]
    OP --> OK["Response message"]
    OP --> FAULT["SOAP fault<br>see Faults and error pipeline"]

Operations by process

Operations that delegate to a documented processing workflow link to it here.

Operation Process
ReadFile OP-001
ReadEntireFile OP-002
WriteFile OP-003
DeleteFile OP-004
Length OP-005
GetPreferences OP-006
SavePreferences OP-007
GetDefaultPrinter OP-008
Get OP-009
Save OP-010
CreateContext OP-011
QueueImage OP-012
ReserveImageId OP-013
SendFax OP-014
IsAuthorized OP-015
IsAuthorized2 OP-016
GetUser OP-017
GetSaifUserByUserId OP-018
GetSaifUserByEmployeeId OP-019
GetUserIdForEmployeeId OP-020
GetExternalUser OP-021
GetExternalUserByCustomerId OP-022
GetInjuredWorkerUserByCustomerId OP-023
GetUsersByGroup OP-024

Coverage

Check Result
Service classes registered in the route table 6
Service classes with a contracts/ page 6
Public operations across all service classes 24
Rows in the operation catalog 24

Sources

  • src/WCF/SAIF.Services.WCF.Host/Global.asax.cs
  • src/WCF/SAIF.Services.WCF.Host/Services/FileService.cs
  • src/WCF/SAIF.Services.WCF.Host/Services/PreferenceService.cs
  • src/WCF/SAIF.Services.WCF.Host/Services/WebContextService.cs
  • src/WCF/SAIF.Services.WCF.Host/Services/ImagingService.cs
  • src/WCF/SAIF.Services.WCF.Host/Services/FaxService.cs
  • src/WCF/SAIF.Services.WCF.Host/Services/Security/SecurityService.cs