Skip to content

Configuration settings

SAIF.Application.Services.AudioVideo retrieves all of its configuration exclusively through IEnvironmentService.GetConfigSetting(string key); five distinct keys were identified, all resolving CallRex service URLs or media file-system paths. No GetSecureConfigSetting, ConfigurationManager.AppSettings, DbConnectionManager, or ApplicationSettingsBase/Settings.Default usage exists anywhere in this library's own source.

Configuration retrieval methods

Method Class / Interface Namespace Usage pattern
GetConfigSetting(string key) IEnvironmentService SAIF.Core.Services Instance obtained via constructor injection (AudioVideoService, CallRecordingSystem, CallRexServiceProxy) and called directly at the point of use to resolve plain-text runtime settings (media output path, CallRex service URLs, recording path). No dedicated *Configuration wrapper class exists in this library — each consumer calls GetConfigSetting inline.

Environment API settings

Settings retrieved via IEnvironmentService (centralized environment configuration service).

Setting key Method Data type Purpose Consuming class Source
AudioImportService.callRexMediaOutputPath GetConfigSetting string (file-system/UNC path) Base output path used to compute both the recording destination path and the backup path for imported media. AudioVideoService (GetRecordingPath, GetRecordingBackupPath) Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs
AudioImportService.callRexServiceUrl GetConfigSetting string (URL) Endpoint URL for the CallRex on-demand recording/client SOAP service. CallRecordingSystem (constructor) Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\RecordingSystem.cs
AudioImportService.callRexStateServiceUrl GetConfigSetting string (URL) Endpoint URL for the CallRex real-time agent-state duplex service. CallRecordingSystem (constructor, GetAllUsersCurrentCallState) Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\RecordingSystem.cs
AudioImportService.callRexRecordingBaseUrl GetConfigSetting string (URL) Base URL used to construct the CallRecording.RecordingUrl returned to callers. CallRexServiceProxy (GetRecordings, GetRecording) Application\SAIF.Application.Services.AudioVideo\Services\ClientProxies\ThirdParty\CallRexServiceProxy.cs
AudioImportService.callRexRecordingPath GetConfigSetting string (file-system/UNC path) File-system/share path where CallRex stores recording source files; used to build CallRecording.AbsoluteFileLocation. CallRexServiceProxy (GetRecording) Application\SAIF.Application.Services.AudioVideo\Services\ClientProxies\ThirdParty\CallRexServiceProxy.cs

All five keys are string literals passed directly to GetConfigSetting, with no constant/enum indirection, and all vary by environment (URLs and file-system paths differ across dev/test/prod deployments).

AppSettings (Web.config)

None — this library does not read System.Configuration.ConfigurationManager.AppSettings, and app.config for this project declares no <appSettings> section (it contains only a <system.serviceModel> block and a <startup> element).

Database connection configuration

None declared directly in this library. This library performs NHibernate-mapped data access via IUnitOfWork/IRepository<T>, but the connection string and provider selection (Oracle vs. SQL Server) is resolved entirely inside the referenced SAIF.Framework.Data.NHibernate package (ConfigurationFactoryBase.CreateConfiguration(string connection, int batchSize, bool showSql)), which accepts an already-resolved connection string as a parameter rather than calling IEnvironmentService/DbConnectionManager itself. The actual connection-string key/value used at runtime is composed by a host/DI-composition layer outside both this library and the NHibernate factory package.**

Secure settings

None — no GetSecureConfigSetting or SystemHashUtil.ComputeHash usage was found anywhere in this library.

Note (cross-reference, not a secure-config finding): CallRexServiceProxy hardcodes a CallRex service-account credential as plain string literals — _userId = "AI" / _pwd = "AudioImporter" (Services\ClientProxies\ThirdParty\CallRexServiceProxy.cs) — used to call _webService.Login(_userId, _pwd). This credential is not retrieved via IEnvironmentService.GetSecureConfigSetting or any other configuration mechanism; it is compiled into source.

Transitive configuration (from dependencies)

Settings required at runtime by referenced libraries or packages, not directly consumed by this library's code.

Setting key Method Source dependency Dependency type Purpose
NHibernate connection string (Oracle or SQL Server) Not resolved via IEnvironmentService/DbConnectionManager inside SAIF.Framework.Data.NHibernate — received as an already-built parameter SAIF.Framework.Data.NHibernate NuGet (same-repo) Backs the IUnitOfWork/IRepository<T> stack consumed by AudioVideoService and other consumers; the actual key(s)/hosting-application DI wiring are outside this library's own source.**
IEnvironmentService implementation (which concrete class is registered) Constructor-injected interface; concrete implementation registration not present in this library SAIF.Framework.Core NuGet Supplies the interface used by all five GetConfigSetting call sites above; the concrete implementation is composed by the hosting application/DI container.**

Configuration dependencies

Dependency Type Required at Impact if missing
IEnvironmentService registration Service (DI) Startup/runtime All five GetConfigSetting call sites would fail to resolve a value; AudioVideoService, CallRecordingSystem, and CallRexServiceProxy cannot construct valid file paths or vendor-service endpoint addresses.*
AudioImportService.callRexMediaOutputPath value Configuration key Runtime (import) ImportRecording cannot compute a destination or backup file path; the import workflow fails.*
AudioImportService.callRexServiceUrl / callRexStateServiceUrl values Configuration key Runtime (construction) CallRecordingSystem cannot construct its WCF proxies, so no CallRex on-demand or real-time operations can be performed.*
AudioImportService.callRexRecordingBaseUrl / callRexRecordingPath values Configuration key Runtime (recording lookup) CallRexServiceProxy.GetRecording/GetRecordings cannot build a valid RecordingUrl/AbsoluteFileLocation for the returned CallRecording.*

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

  • 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
  • Application\SAIF.Application.Services.AudioVideo\app.config
  • Application\SAIF.Application.Services.AudioVideo\SAIF.Application.Services.AudioVideo.csproj
  • Core\SAIF.Core\Core\Services\IEnvironmentService.cs
  • Data\SAIF.Data.NHibernate\Factories\ConfigurationFactoryBase.cs
  • Data\SAIF.Data.NHibernate\Factories\OracleConfigurationFactory.cs
  • Data\SAIF.Data.NHibernate\Factories\SqlServerConfigurationFactory.cs