Skip to content

Configuration settings

All runtime-variable configuration in SAIF.Services.Printing flows through the SAIF Environment API (EnvironmentServiceBase). There is no ConfigurationManager.AppSettings usage, no DbConnectionManager usage, no GetSecureConfigSetting usage, and no <appSettings> section in either config file. Four unique Environment API keys and two boolean flags are consumed; the only local configuration artifacts are design-time typed applicationSettings (web-reference URLs, unconditionally overwritten at runtime) and the ODP.NET managed-driver provider registration.

Configuration retrieval methods

Method Class / Interface Namespace Usage pattern
GetConfigSetting(key As String) As String EnvironmentServiceBase SAIF.Framework.Security / Environment API Called with a string literal key. Two shapes: read once in the constructor and cached in a field (clsPrint.New(envSvc), clsRSPrint.New(envSvc)); or read live on every property access (clsPrint.IDMPath).
IsProduction As Boolean EnvironmentServiceBase SAIF.Framework.Security / Environment API Read once in clsPrint.New(envSvc) to derive the Environment label (BR-PRT-002)
IsWeb As Boolean EnvironmentServiceBase SAIF.Framework.Security / Environment API Read in ReportBase.Render to choose the security platform (BR-PRT-009)
AppGlobal.EnvironmentService (static ambient accessor) AppGlobal SAIF.Framework.Security (SAIF.BOF.Framework package) Service-locator fallback used by every parameterless constructor to obtain the environment service, delegated to the parameterised constructor
ApplicationSettingsBase typed settings (My.Settings) SAIF.Services.Printing.My.MySettings SAIF.Services.Printing.My Auto-generated Application-scoped WebServiceUrl settings backing the two ASMX web references; consumed only as design-time proxy defaults — both values are overwritten at runtime
ConfigurationManager.AppSettings — System.Configuration Not used — zero matches across all .vb files
GetSecureConfigSetting / SystemHashUtil.ComputeHash — — Not used — zero matches
DbConnectionManager / EnvironmentConfigKeys — — Not used — zero matches; this library performs no direct data access

Environment API settings

Settings retrieved via EnvironmentServiceBase (the SAIF Environment API). Concrete runtime values are not visible in this repository — they live in the external Environment API store, keyed by application/environment.**

Setting key Method Data type Purpose Consuming class Source
documentGeneratorServiceUrl GetConfigSetting String xPression clsGenerate ASMX endpoint URL, assigned to m_Xpresso.Url clsPrint SAIF.Services.Printing/clsPrint.vb
documentMSMQPath GetConfigSetting String MSMQ queue path, cached in m_MessagePath, used to lazily construct the transactional System.Messaging.MessageQueue for deferred/composite distribution clsPrint SAIF.Services.Printing/clsPrint.vb
idmFilePath GetConfigSetting String Imaging (IDM) drop location; re-read from the Environment API on every IDMPath access (not cached), then copied into CompositeRequestClass.IDMPath clsPrint SAIF.Services.Printing/clsPrint.vb
sqlReportingServiceUrl GetConfigSetting String SSRS ReportExecution2005 ASMX endpoint URL, assigned to m_RS.Url clsRSPrint SAIF.Services.Printing/clsRSPrint.vb
IsProduction (flag) IsProduction property Boolean Sets Environment to "Prod" else "Dev" (BR-PRT-002) clsPrint SAIF.Services.Printing/clsPrint.vb
IsWeb (flag) IsWeb property Boolean Selects clsSecurityPrincipal.Platform.Web else .Windows (BR-PRT-009) ReportBase SAIF.Services.Printing/Reporting/ReportBase.vb

Total: 4 unique Environment API keys, all plain-text, all String-typed (no generic GetConfigSetting<T> usage), plus 2 boolean behavior flags.

AppSettings (Web.config)

None. No <appSettings> section exists in app.config or Web.config, and no ConfigurationManager.AppSettings, AppSettings.Get(, or AppSettings[ reference exists in any .vb file in the project.

Database connection configuration

None. No connection strings, no <connectionStrings> section, and no DbConnectionManager calls or ADO.NET/ODP.NET code exist in this library.

Connection name Provider Retrieval method Purpose Source
— ODP.NET, Managed Driver (invariant Oracle.ManagedDataAccess.Client) Provider factory registration only Registered in DbProviderFactories to satisfy the hosting application/BOF framework runtime; no connection is opened by this library.* SAIF.Services.Printing/app.config, SAIF.Services.Printing/Web.config

Secure settings

None. No GetSecureConfigSetting call, no SystemHashUtil.ComputeHash, and no SystemType.WebApp / SystemType.Service reference exists anywhere in the library. Credentials for the xPression and SSRS calls are not configuration-sourced — they are carried by the ambient Windows/Web identity via clsSecurityPrincipal and the ASMX proxies' default credentials.*

Transitive configuration (from dependencies)

Setting key Method Source dependency Dependency type Purpose
Environment API endpoint / application identity EnvironmentServiceBase resolution SAIF.BOF.Framework NuGet Resolved by the framework from host configuration not visible in this repository; the hosting application must have AppGlobal.EnvironmentService initialised before any parameterless constructor of clsPrint, clsRSPrint, or ReportBase runs.*
oracle.manageddataaccess.client section + DbProviderFactories entry Config-file section merge Oracle.ManagedDataAccess (NuGet) NuGet Required section declaration/registration for the referenced provider; not exercised by this library's code

Configuration dependencies

Dependency Type Required at Impact if missing
4 Environment API keys (documentGeneratorServiceUrl, documentMSMQPath, idmFilePath, sqlReportingServiceUrl) Environment API settings Construction / property access Affected constructor throws or the property yields a null endpoint
AppGlobal.EnvironmentService Ambient static service Startup, before any parameterless constructor of clsPrint, clsRSPrint, or ReportBase Parameterless constructors fail to resolve an environment service
MSMQ queue at documentMSMQPath Runtime resource Asynchronous distributeDocument Send fails; the queue must exist and be transactional
Path at idmFilePath Runtime resource Every IDMPath access Imaging drop location must be writable by the process identity; a mid-process configuration change takes effect immediately for IDMPath but not for the cached URLs or the Environment label
oracle.manageddataaccess.client + DbProviderFactories registration Config-file section Host merge Already present in the shipped app.config/Web.config; must be merged into the host's config if not already present

Custom configuration sections

Section name Handler type Declared in Purpose
oracle.manageddataaccess.client OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.21.1 app.config, Web.config ODP.NET Managed Driver configuration section; declared but empty in both files
applicationSettings/SAIF.Services.Printing.My.MySettings System.Configuration.ClientSettingsSection app.config Backs the generated My.Settings typed accessors for the two ASMX web-reference URLs
applicationSettings/SAIF.MySettings System.Configuration.ClientSettingsSection app.config Legacy section holding SAIFPrint_xpresso_clsGenerate; no generated designer class in this project maps to it — vestigial carry-over from a predecessor assembly named SAIFPrint*
applicationSettings/SAIF.My.MySettings System.Configuration.ClientSettingsSection app.config Declared in <configSections> but has no corresponding body and no consuming designer class — dead declaration

Testability injectability notes

  • clsPrint.New(envSvc) is Public — the environment service can be substituted.
  • clsRSPrint.New(envSvc) is Private — the environment service cannot be substituted from outside; only the ambient AppGlobal.EnvironmentService path is reachable.
  • ReportBase.xPrint constructs its clsPrint with the parameterless constructor, so a report's injected environment service is not propagated to the printer it uses.*

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

  • SAIF.Services.Printing/app.config
  • SAIF.Services.Printing/Web.config
  • SAIF.Services.Printing/My Project/Settings.Designer.vb
  • SAIF.Services.Printing/My Project/Settings.settings
  • SAIF.Services.Printing/clsPrint.vb
  • SAIF.Services.Printing/clsRSPrint.vb
  • SAIF.Services.Printing/Reporting/ReportBase.vb
  • SAIF.Services.Printing/app.config
  • SAIF.Services.Printing/Web.config
  • SAIF.Services.Printing/My Project/Settings.Designer.vb