Skip to content

Dependencies

This host depends on the SAIF.Framework.Core/SAIF.Framework.Common/SAIF.Framework.Data.NHibernate package family for configuration, contracts, and persistence, has no dependency-injection container, vendors one binary directly into source control, calls one downstream SOAP service, and reads from four database connections across Oracle and SQL Server.

Internal dependencies

Dependency Reference Type Project path Usage
SAIF.Framework.Common NuGet Package — Shared framework primitives and logging surface
SAIF.Framework.Core NuGet Package — Environment API configuration retrieval and the transitively supplied service contracts (SAIF.Services.WCF.Contracts)
SAIF.Framework.Data.NHibernate NuGet Package — NHibernateUnitOfWork, OracleUnitOfWorkFactory, SqlServerUnitOfWorkFactory, OracleConfigurationFactory, SqlServerConfigurationFactory, Repository<T>, IRepository<T>, IRepositoryFactory, DbConnectionManager
SAIF.HashUtil NuGet Package — Framework closure; unused by host source
SAIF.Web.API.Clients NuGet Package — Framework closure; unused by host source

External dependencies

Dependency Version Usage
System.ServiceModel .NET Framework 4.6.2 WCF contracts, hosting, and dispatch
System.ServiceModel.Activation .NET Framework 4.6.2 ServiceHostFactory and ServiceRoute activation
NHibernate 4.0.3.4000 ORM for all four units of work
FluentNHibernate 2.0.1.0 NHibernate mapping closure
Iesi.Collections 4.0.1.4000 NHibernate collection support
Oracle.ManagedDataAccess 21.5.0 Managed ODP.NET provider for the three Oracle connections
FluentValidation 5.5.0.0 Framework closure; unused by host source
log4net 2.0.5 Framework logging closure
Newtonsoft.Json 8.0.3 Framework serialization closure
RestSharp 106.12.0 Framework HTTP client closure
Autofac 3.5.2 Referenced but unused by this host's source (see Tech debt)

Vendored assemblies

Assembly HintPath Version Source of truth Usage
SAIFConnection.dll ..\Libs\SAIF\SAIFConnection.dll 1.8.5.0 Checked in under src/WCF/Libs/SAIF/; not determined from source beyond that Referenced by WCF.csproj only — no host source file references its types; present for the framework closure's benefit

This assembly is a checked-in binary with <SpecificVersion>False</SpecificVersion>, is not a NuGet package, and does not appear in packages.config. It cannot be restored, upgraded, or audited through the package pipeline; see Tech debt.

Transitive dependencies

Dependency Source framework Type Usage
SAIF.Services.WCF.Contracts SAIF.Framework.Core Transitive Declares the six [ServiceContract] interfaces this host implements; not referenced directly and not present in the repository*
SAIF.Core.Contracts, SAIF.Services.Common, SAIF.Services.Utilities, SAIF.Services.ClientProxies SAIF.Framework.Core Transitive Supporting types used across the six services, including ApplicationExceptionDetail*

Service dependencies

Service Protocol Called from Endpoint source Documentation Usage
Legacy.Fax SOAP FaxServiceProxy.SendFax (src/WCF/SAIF.Services.WCF.Host/Services/LegacyProxies/FaxServiceProxy.cs) EnvironmentConfigKeys.FaxSoapServiceUrl resolved through WcfEnvironmentService, passed as a constructor argument to FaxServiceProxy — the <client><endpoint name="FaxServiceSoap"> entry in Web.Base.config is present but unused by this code path Docs Outbound fax dispatch behind FaxService.SendFax

Database connections

The pool code is not the Oracle schema. Each value below is the final argument passed to DbConnectionManager.GetOracleConnectionString/GetSqlServerConnectionString — a SAIF-specific pool code forwarded to a legacy connect-info SOAP service that resolves the actual Oracle user/schema server-side. See Configuration for the caveat.

Database Pool code Access method Resolved by Usage
Oracle CLM NHibernate IUnitOfWorkFactory (OracleUnitOfWorkFactory) DbConnectionManager.GetOracleConnectionString(env, EnvironmentConfigKeys.OracleDatabase, "CLM") PreferenceService persistence
Oracle IMG NHibernate IUnitOfWorkFactory (OracleUnitOfWorkFactory) DbConnectionManager.GetOracleConnectionString(_environmentSvc, EnvironmentConfigKeys.OracleDatabase, "IMG") ImagingService image id reservation and queuing
Oracle EXTUR NHibernate IUnitOfWorkFactory (OracleUnitOfWorkFactory) DbConnectionManager.GetOracleConnectionString(_environmentService, EnvironmentConfigKeys.OracleDatabase, "EXTUR") SecurityService user/employee resolution
SQL Server NETFRAMEWORK / APPM NHibernate IUnitOfWorkFactory (SqlServerUnitOfWorkFactory) DbConnectionManager.GetSqlServerConnectionString(env, EnvironmentConfigKeys.NetFrameworkSqlServer, "NETFRAMEWORK", "APPM") WebContextService persistence

See Configuration for the full resolution-call detail and Data model for the table inventory behind each connection.

Dependency risks and notes

  • No dependency-injection container — every collaborator across all six services is constructed with new against a concrete class inside a parameterless constructor or a per-call method. Autofac 3.5.2 is referenced but unused. See Tech debt.
  • SAIFConnection.dll is a vendored binary with no package identity, no version manifest, and no restore path (above).
  • The ImagingService route name is duplicated across two hosts. SAIF.Services.WCF32.Host also registers a route named Imaging, but backed by an entirely different class and contract (SAIF.Services.WCF.Imaging.WCF32.IImagingService, x86) than this host's ImagingService (SAIF.Services.WCF.Contracts.IImagingService, x64). They are not two deployments of one implementation; see Activation and hosting. SAIF.Services.WCF32.Host is not documented in this run (no pipeline reference, no .nuspec reference).
  • Legacy.Fax is the only downstream SOAP dependency in this host, reached exclusively from FaxService.SendFax; the other five services perform no outbound service calls beyond their own database connections.

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/WCF.csproj
  • src/WCF/SAIF.Services.WCF.Host/packages.config
  • src/WCF/SAIF.Services.WCF.Host/Services/LegacyProxies/FaxServiceProxy.cs
  • src/WCF/SAIF.Services.WCF.Host/Web.Base.config