---
title: IDocumentRequestService
summary: API reference for IDocumentRequestService.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.SAIFCode.Core
reference_type: package
---

# IDocumentRequestService

`IDocumentRequestService` declares a service contract in the Documents area, implemented outside this library (most likely in SAIF.Services, per the declare-here, enforce-elsewhere pattern documented for this library)*.

## Purpose
- Declares the operations that a SAIF.Services implementation must provide for the Documents area*.

## Context
- Namespace: `SAIF.Core.Contracts.Documents`
- Kind: Interface
- Assembly/package: `SAIF.Core` (NuGet package `SAIF.SAIFCode.Core`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `NewRequestValue` | `string NewRequestValue()` | Handles new request value*. |
| `PendingRequestValue` | `string PendingRequestValue()` | Handles pending request value*. |
| `ProcessingRequestValue` | `string ProcessingRequestValue()` | Handles processing request value*. |
| `GetRequestDetailsOrDefault` | `RequestLog GetRequestDetailsOrDefault(long requestLogId)` | Returns request details or default, given `requestLogId`*. |
| `GetLatestMacroRequestForUserOrDefault` | `RequestLog GetLatestMacroRequestForUserOrDefault(string userId)` | Returns latest macro request for user or default, given `userId`*. |
| `GetLatestXpRequestForUserOrDefault` | `RequestLog GetLatestXpRequestForUserOrDefault(string userId)` | Returns latest xp request for user or default, given `userId`*. |
| `GetProcessingDocuments` | `IEnumerable<DocumentDistributionLog> GetProcessingDocuments()` | Returns processing documents*. |
| `GetPendingRequests` | `IEnumerable<PendingRequestResult> GetPendingRequests(string requestedSort, string overrideUserId)` | Returns pending requests, given `requestedSort`, `overrideUserId`*. |
| `GetDocumentDistributionLogById` | `DocumentDistributionLog GetDocumentDistributionLogById(long logId)` | Returns document distribution log by id, given `logId`*. |
| `UpdateDocumentDistributionLogStatus` | `void UpdateDocumentDistributionLogStatus(long logId, string newStatus)` | Updates document distribution log status, given `logId`, `newStatus`*. |
| `UpdateDocumentDistributionLogStatusForRequest` | `void UpdateDocumentDistributionLogStatusForRequest(long requestNumber, string newStatus)` | Updates document distribution log status for request, given `requestNumber`, `newStatus`*. |
| `ResetDocumentRequest` | `void ResetDocumentRequest(long requestId)` | Resets document request, given `requestId`*. |
| `CreateDocumentDistributionRecord` | `long CreateDocumentDistributionRecord(DocumentDistributionLog distributionLog)` | Creates document distribution record, given `distributionLog`*. |
| `GetNextDistributionRecordKey` | `long GetNextDistributionRecordKey()` | Returns next distribution record key*. |
| `UpdateRequestStatus` | `void UpdateRequestStatus(long requestLogId, string requestStatus)` | Updates request status, given `requestLogId`, `requestStatus`*. |
| `MarkDocumentRequestsInProcess` | `void MarkDocumentRequestsInProcess(DateTime endDateToGet, string specificRequestId)` | Handles mark document requests in process, given `endDateToGet`, `specificRequestId`*. |

> **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
- Core/SAIF.Core/Contracts/Documents/IDocumentRequestService.cs
