Skip to content

SAIF.Application.Services.AudioVideo.32 dependencies

This library has no <ProjectReference> elements — all internal SAIF collaboration is through organizational NuGet packages, most notably the 32-bit-specific SAIF.Framework.Data.NHibernate.32 package (which bundles the x86 Oracle.DataAccess.dll), plus vendored third-party CallRex binaries and standard NuGet packages for validation, mapping, logging, and audio conversion.

Internal dependencies

Dependency Reference Type Usage
SAIF.Framework.Core NuGet Package Supplies IEnvironmentService, IConsoleLogService/ILogService, SaifValidationException, IUnitOfWork, and IRepository<T> contracts consumed by AudioVideoService, ImportStatusManager, CallRecordingSystem, and CallRexServiceProxy.
SAIF.Framework.Common NuGet Package Supplies SAIF.Common types (Enforce, EntityBase<T>, and extension methods GetErrorLogFormattedException, TakeFromEnd, ToStringAll, GetMD5Hash) used by the entity base classes and by AudioVideoService's backup-file MD5 verification.
SAIF.Framework.Data.NHibernate.32 NuGet Package 32-bit NHibernate data-access stack backing IUnitOfWork/IRepository<T>; bundles the x86 Oracle.DataAccess.dll driver required because this project builds with PlatformTarget=x86.
SAIF.HashUtil NuGet Package Backs the GetMD5Hash extension method used by AudioVideoService.CopyOriginalRecordingFileToBackup to verify backup-copy integrity.
SAIF.Web.API.Clients NuGet Package SAIF.Web.API.Core/SAIF.Web.API.Clients assemblies referenced by the project; no direct usage was observed in the scanned source.

External dependencies

Dependency Version Usage
Autofac 3.5.2 DI container reference; no direct container-registration code was found in the scanned files.
FluentNHibernate 2.0.1.0 ClassMap<T> entity mapping for AudioImportStatusMap and RecordingMap.
FluentValidation 5.5.0.0 Base class for AudioVideoValidator : AbstractValidator<ImportAudioRequest>.
Iesi.Collections 4.0.1.4000 NHibernate collection-support dependency.
log4net 2.0.5 Logging infrastructure dependency, consumed indirectly via ILogService/IConsoleLogService.
MediaToolkit 1.1.0.1 Wraps FFmpeg for audio transcoding (MediaToolkit.Engine, MediaToolkit.Model.MediaFile) in AudioVideoService.ConvertAudioRecording; vendored FFmpeg binary attribution is recorded in MediaToolkit\README.txt.
Newtonsoft.Json 8.0.3 JSON serialization dependency; no direct usage was observed in the scanned files (transitive via framework packages).
NHibernate 4.0.3.4000 ORM engine underlying the Framework4 data-access stack.
RestSharp 105.2.3 HTTP client dependency; no direct usage was observed in the scanned files (likely transitive via SAIF.Web.API.Clients).
CallRex.Utilities.dll (vendored) n/a (HintPath reference) Third-party CallRex client utility library, referenced directly from Libs\ThirdParty\CallRex\, not NuGet-restored.
CallrexAPIUtilities.dll (vendored) n/a (HintPath reference) Third-party CallRex API utility library, referenced directly from Libs\ThirdParty\CallRex\, not NuGet-restored.

Transitive dependencies

Dependencies in this section are inherited from dependency framework libraries. They are not directly referenced by this library but are required at runtime through framework packages.

Dependency Source framework Type Usage
Oracle.DataAccess.dll (x86, ODP.NET unmanaged) SAIF.Framework.Data.NHibernate.32 Transitive Bundled x86 Oracle client driver required for this project's PlatformTarget=x86 build; loaded when IUnitOfWork/IRepository<T> resolve database connections at runtime, in place of the sibling library's 64-bit-capable Oracle client.

Dependency risks and notes

  • Bitness-coupled dependency chain: this library's choice of SAIF.Framework.Data.NHibernate.32 (and its bundled x86 Oracle.DataAccess.dll) is directly tied to the project's PlatformTarget=x86 setting; deploying this assembly into a 64-bit host process would be incompatible with the vendored unmanaged Oracle client.
  • Vendored, non-NuGet third-party binaries: CallRex.Utilities.dll and CallrexAPIUtilities.dll are referenced by HintPath rather than restored via NuGet, so they are not subject to standard package-vulnerability/version tooling and must be tracked manually.
  • Hard-coded third-party service credentials: CallRexServiceProxy logs in to the CallRex ClientServiceClient WCF service using a hard-coded credential pair ("AI" / "AudioImporter") compiled directly into source, rather than retrieved via IEnvironmentService.GetSecureConfigSetting; this bypasses the SAIF secure-configuration pattern and is a configuration/secrets-management risk (see Configuration).
  • Design-time WCF endpoint addresses are overridden at runtime: the app.config system.serviceModel client endpoints use localhost-style placeholder addresses; the actual CallRex endpoints dialed at runtime are constructed from IEnvironmentService-resolved settings (AudioImportService.callRexServiceUrl, AudioImportService.callRexStateServiceUrl), so endpoint configuration risk is concentrated in those environment settings rather than in app.config itself.
  • No independently-versioned business logic: because this project shares 100% of its business-logic source with SAIF.Application.Services.AudioVideo via linked files, any dependency-version divergence between the two projects' packages.config files (beyond the intentional SAIF.Framework.Data.NHibernate.32 vs. the sibling's package) should be treated as a build-variant risk, not an intentional behavioral difference.

Sources

  • Application\SAIF.Application.Services.AudioVideo.32\SAIF.Application.Services.AudioVideo.32.csproj
  • Application\SAIF.Application.Services.AudioVideo.32\packages.config
  • Application\SAIF.Application.Services.AudioVideo.32\app.config
  • Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs
  • Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\RecordingSystem.cs
  • Application\SAIF.Application.Services.AudioVideo\Services\ClientProxies\ThirdParty\CallRexServiceProxy.cs