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

# RctPolicyToTransmitService

Implements `IRctPolicyToTransmitService`, managing the queue of `RctPolicyToTransmit` records awaiting transmission and triggering the downstream claims-side policy selection call. It depends on `IUnitOfWork` for repository access and `ICCClaimApiService` to invoke the external claims-center policy-selection operation.

## Purpose
- Exposes the current set of policies queued for RCT transmission.
- Adds, updates, and removes individual queued-transmission records, and can clear the entire queue.
- Triggers claims-center policy selection for a given reload flag and process date.

## Context
- Namespace: `SAIF.Services.Rct`
- Assembly/package: `SAIF.Services` (packaged inside the `SAIF.SAIFCode.Core` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| RctPolicyToTransmitService(...) | `public RctPolicyToTransmitService(IUnitOfWork unitOfWork, ICCClaimApiService ccclaimApiService)` | Validates `unitOfWork` is non-null via `Enforce.ArgumentNotNull` and wires in both collaborators. |
| GetRctPoliciesToTransmit | `public IEnumerable<RctPolicyToTransmit> GetRctPoliciesToTransmit { get; }` | Returns every policy currently queued for RCT transmission, mapped to contracts. |
| RemoveAllRctPoliciesToTransmit | `public void RemoveAllRctPoliciesToTransmit()` | Removes every currently queued policy-to-transmit record one at a time via `RemoveRctPolicyToTransmit`. |
| RemoveRctPolicyToTransmit | `public void RemoveRctPolicyToTransmit(RctPolicyToTransmit policyToTransmit)` | Deletes the mapped data record for the supplied policy-to-transmit entry from the repository. |
| InsertRctPolicyToTransmit | `public void InsertRctPolicyToTransmit(RctPolicyToTransmit policyToTransmit)` | Adds a new policy-to-transmit record to the repository. |
| UpdateRctPolicyToTransmit | `public void UpdateRctPolicyToTransmit(RctPolicyToTransmit policyToTransmit)` | Updates an existing policy-to-transmit record in the repository. |
| PolicySelectionAsync | `public async Task<bool> PolicySelectionAsync(string reloadFlag, DateTime processDate)` | Delegates to `_ccclaimApiService.PolicySelectionAsync`, returning whether the external claims-center policy-selection call succeeded. |

## Behavioral notes
- None of the mutating members (`Remove*`, `Insert*`, `Update*`) wrap their repository calls in an explicit `unitOfWork.Begin()`/`Commit()`, implying they rely on an ambient/externally-managed transaction scope*.
- `RemoveAllRctPoliciesToTransmit` re-reads and re-maps the full queue before deleting each entry individually rather than issuing a bulk delete.

> **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
- Services/SAIF.Services/Rct/RctPolicyToTransmitService.cs
