---
title: Dependencies
summary: Packages, framework components, projects, and remote services this proxy depends on.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Dependencies

`Document` depends on the WCF client framework and `System.Net.Mail` to compile, on the external `clsGenerate` service to function at runtime, and on `SAIF.Services.Utilities.Documents.DocumentService`/`SAIF.Services.Web.Proxies` — a library consumed as documented at [`SAIF.Services.Web.Proxies` overview](../../libraries/saif-services-web-proxies/overview.md) — as its in-repository caller.

## Internal dependencies

| Project | In this repository | Purpose | Usage |
| --- | --- | --- | --- |
| `SAIF.Services.Web.Proxies` | Yes | Owns the generated proxy and the `DocumentServiceProxy` wrapper | Compiles and hosts the generated `clsGenerateSoapClient` and the authored wrapper |
| `SAIF.Services` | Yes | Consumes the wrapper through `SAIF.Services.Utilities.Documents.DocumentService` | Calls `DocumentServiceProxy` to render and distribute documents |
| `Core/SAIF.Core` | Yes | Declares `DocumentGenerationConfig`, `PrintConfig`, `DeferredPrintConfig`, `FaxInfoClass`, and the `PlexMode`/`ScaleMode`/`PaperTray` enums that `DocumentServiceProxy` maps to the generated contract types | Supplies the caller-facing types that the wrapper maps onto the generated `distributeDocument` request |

## External dependencies

| Component | Assembly | Purpose | Usage |
| --- | --- | --- | --- |
| `System.ServiceModel` | `System.ServiceModel.dll` | Supplies `ClientBase<T>`, `BasicHttpBinding`, and `EndpointAddress` used by the generated proxy and the wrapper | Constructs and invokes the generated SOAP client |
| `System.Xml` | `System.Xml.dll` | Supplies `XmlDictionaryReaderQuotas` used to raise `MaxArrayLength` in the wrapper's binding | Raises the array-length quota so large `ArrayOfString` responses deserialize |
| `System.Net.Mail` | `System.dll` | Supplies `MailMessage`, mapped by `MapMailMessage` into the generated `EmailInfoClass` | Accepts caller-supplied email details before mapping them onto the SOAP request |

This proxy requires no NuGet package; it depends only on framework assemblies.

No assembly is referenced outside the package system.

## Transitive dependencies

No transitive dependency is evidenced from source.

## Service dependencies

| Service | Endpoint | Documented by this run | Documentation | Operations used | Usage |
| --- | --- | --- | --- | --- | --- |
| `clsGenerate` | `http://xpressionsdev:8000/wsDocuments/clsGenerate.asmx` (non-prod) / `http://xpressionsprod:8000/wsDocuments/clsGenerate.asmx` (prod) | No | `clsGenerate`† | [`previewDocument`](reference.md#previewdocument), [`distributeDocument`](reference.md#distributedocument), [`documentsForCategory`](reference.md#documentsforcategory), [`categoriesForUser`](reference.md#categoriesforuser) | Renders document previews, distributes documents by print/email/fax/imaging, and lists categories/packages at runtime |

## Configuration dependencies

| Setting | Source | Required at | Notes | Usage |
| --- | --- | --- | --- | --- |
| `documentGeneratorServiceUrl` | `Services/SAIF.Services.WebApi/EnvironmentApi/App_Data/environments.xml` | First call | Per-track value read via `IEnvironmentService.GetConfigSetting`, `Services/SAIF.Services/Utilities/Documents/DocumentService.cs:35` | Supplies the `EndpointAddress` passed to `DocumentServiceProxy`'s constructor for the generated `clsGenerateSoapClient` |
| `idmfilepath` | `environments.xml` | Before a `distributeDocument` call with imaging | Sent as `inIDMPath`; key casing differs between code (`idmfilepath`) and XML (`idmFilePath`), presumed case-insensitive lookup* | Passed as `inIDMPath` on `distributeDocument` calls that request imaging distribution |

## Dependency risks and notes

| Dependency | Risk | Impact if unavailable | Usage |
| --- | --- | --- | --- |
| `clsGenerate` | No retry, no timeout override, and no cancellation at any of the six call sites | Document preview, distribution, and category/package listing all fail, and the exception propagates unhandled to controllers and services | Invoked by `DocumentService`'s preview, distribution, and category/package listing operations through `DocumentServiceProxy` |

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Contract](contract.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Business rules](business-rules.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence.

## Sources
- `Services/SAIF.Services.Web.Proxies/SAIF.Services.Web.Proxies.csproj`
- `Services/SAIF.Services/Utilities/Documents/DocumentService.cs`
- `Services/SAIF.Services.WebApi/EnvironmentApi/App_Data/environments.xml`
