---
title: Document overview
summary: Which service this proxy calls, who consumes it, and what it is used for.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Document overview

`Document` is a svcutil-generated SOAP proxy inside `SAIF.Services.Web.Proxies` that previews, distributes (by print, email, and fax), and enumerates document packages against the external `clsGenerate`† ASMX service, which fronts the xPression document platform*, and the repository holds it because `SAIF.Services.Utilities.Documents.DocumentService` needs document generation and distribution at runtime.

## Purpose
- Render and distribute document packages produced by the xPression platform — as a previewed PDF, as a printed/emailed/faxed/imaged distribution, and as a categorized document listing — on behalf of this repository's document-generating callers.

## Business context

`DocumentService` is the sole in-repository consumer of this proxy, and it is registered with Autofac as `IDocumentService` in `DependencyMaps/SAIF.DependencyMaps.Web.Documents/DependencyMap.cs:173`, `DependencyMaps/SAIF.DependencyMaps.Web.DocGenerator/DependencyMap.cs:71`, `DependencyMaps/SAIF.DependencyMaps.Web.DocCenter/DependencyMap.cs:127`, `DependencyMaps/SAIF.DependencyMaps.Web.Certs/DependencyMap.cs:143`, `DependencyMaps/SAIF.DependencyMaps.Web.AgencyPortal/DependencyMap.cs:84`, `DependencyMaps/SAIF.DependencyMaps.Web.AgencyInfoApi/DependencyMap.cs:106`, `DependencyMaps/SAIF.DependencyMaps.Web.PolicyDocumentAPI/DependencyMap.cs:170`, `DependencyMaps/SAIF.DependencyMaps.Web.LegalTasksNotes/DependencyMap.cs:79`, `DependencyMaps/SAIF.DependencyMaps.Web.FrameworkTest/DependencyMap.cs:52`, and `DependencyMaps/SAIF.DependancyMaps.Web.AGNI/AutofacBootstrapper.cs:72`, so an outage of `clsGenerate` affects every one of those applications' document generation and distribution features.

| Attribute | Value |
| --- | --- |
| Business capability | Document rendering (preview PDF/HTML) and distribution (print, email, fax, imaging) for xPression-authored document packages |
| Owning team of the called service | Not determined from source |
| Criticality to the consumer | Not determined from source |
| Fallback when unavailable | None — the calling operation fails |

## Consumers

| Consumer | Call site | Operations used | Notes |
| --- | --- | --- | --- |
| `DocumentServiceProxy.PreviewPdf` | `Services/SAIF.Services.Web.Proxies/DocumentServiceProxy.cs:37` | [`previewDocument`](reference.md#previewdocument) | Despite its name, `PreviewPdf` calls `previewDocument`, not `previewPDF` |
| `DocumentServiceProxy.GetCategories` | `DocumentServiceProxy.cs:43` | [`categoriesForUser`](reference.md#categoriesforuser) | Sorts the result alphabetically before returning |
| `DocumentServiceProxy.GetPackages` | `DocumentServiceProxy.cs:49` | [`documentsForCategory`](reference.md#documentsforcategory) | Sorts the result alphabetically before returning |
| `DocumentServiceProxy.DistributeDocument` (two overloads) | `DocumentServiceProxy.cs:69`, `:105` | [`distributeDocument`](reference.md#distributedocument) | The `faxInfo` parameter of the first overload is always sent as `null`; the second (`DistributeDocumentDocCenter`) maps it |
| `DocumentServiceProxy.PrintDocument` | `DocumentServiceProxy.cs:131` | [`distributeDocument`](reference.md#distributedocument) | Print-only overload; no upstream `DocumentService` caller was found for this overload* |

`DocumentService` is constructed per request in `Services/SAIF.Services.WebApi/PrintAPI/Controllers/ReportsController.cs:30,61,92,110` and `HomeController.cs:24`, and those instances are never disposed*. Several of the `DependencyMap.cs`/`AutofacBootstrapper.cs` registrations above pass a six-argument constructor call that does not match this repository's five-argument `DocumentService` constructor — flagged, not reconciled, because those projects likely bind to a different, packaged version of `DocumentService`**.

## Capability summary

| Capability | Operations | Description |
| --- | --- | --- |
| PDF preview | [`previewDocument`](reference.md#previewdocument) | Renders a document package to a PDF byte array |
| Category listing | [`categoriesForUser`](reference.md#categoriesforuser) | Lists the document categories available to the caller |
| Package listing | [`documentsForCategory`](reference.md#documentsforcategory) | Lists the document packages within a category |
| Document distribution | [`distributeDocument`](reference.md#distributedocument) | Prints, emails, faxes, or images a document package |

The full declared surface of 10 operations, including `previewPDF`, `printPDF`, `publishDocument`, `previewHTML`, `publishAndReturnDocument`, and `outputProfilesForDocument`, is on [Contract](contract.md), and the present-versus-called reconciliation is on [Operation map](operation-map.md).

## Generation provenance

| Aspect | Finding |
| --- | --- |
| Generated by | `svcutil` (Service Reference) |
| Generated from | `Services/SAIF.Services.Web.Proxies/Service References/Document/clsGenerate.wsdl` |
| Discovery document | `Services/SAIF.Services.Web.Proxies/Service References/Document/clsGenerate.disco` |
| Generated namespace | `SAIF.Services.Web.Proxies.Document` |
| Namespace matches the consuming project | Yes |
| Regeneration risk | The WSDL target namespace embeds a publisher-side `localhost` URL (`http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/`); no hand edits to `Reference.cs` were found, so refreshing the reference is otherwise low risk |

## Non-documented artifacts

- `Reference.cs`, the `SAIF.Services.Web.Proxies.Document.ArrayOfString.datasource` designer file, and the `configuration*.svcinfo`/`Reference.svcmap` artifacts under `Service References/Document/` are tool output and are not narrated beyond the provenance facts above, per the generated-code doctrine on [Client index](index.md).

## Related documentation
- [Client index](index.md)
- [Architecture](architecture.md)
- [Contract](contract.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.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. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Sources
- `Services/SAIF.Services.Web.Proxies/DocumentServiceProxy.cs`
- `Services/SAIF.Services/Utilities/Documents/DocumentService.cs`
- `Services/SAIF.Services.WebApi/PrintAPI/Controllers/ReportsController.cs`
- `Services/SAIF.Services.WebApi/PrintAPI/Controllers/HomeController.cs`
- `DependencyMaps/SAIF.DependencyMaps.Web.Documents/DependencyMap.cs`
- `DependencyMaps/SAIF.DependencyMaps.Web.DocGenerator/DependencyMap.cs`
- `DependencyMaps/SAIF.DependencyMaps.Web.DocCenter/DependencyMap.cs`
- `DependencyMaps/SAIF.DependencyMaps.Web.Certs/DependencyMap.cs`
- `DependencyMaps/SAIF.DependencyMaps.Web.AgencyPortal/DependencyMap.cs`
- `DependencyMaps/SAIF.DependencyMaps.Web.AgencyInfoApi/DependencyMap.cs`
- `DependencyMaps/SAIF.DependencyMaps.Web.PolicyDocumentAPI/DependencyMap.cs`
- `DependencyMaps/SAIF.DependencyMaps.Web.LegalTasksNotes/DependencyMap.cs`
- `DependencyMaps/SAIF.DependencyMaps.Web.FrameworkTest/DependencyMap.cs`
- `DependencyMaps/SAIF.DependancyMaps.Web.AGNI/AutofacBootstrapper.cs`
