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

# WhichPrintStatus

A public enum nested inside `ReportingService` that selects which side of a certificate's print status — the certificate-holder copy, the policyholder copy, or both — an update operation (`ReportingService.UpdateCertificatesAsPrinted`, `MarkCertificateAsPrinted`) should mark as printed.*

## Purpose
- Distinguishes certificate-holder-copy print-status updates from policyholder-copy updates so batch and per-policy reporting flows can update only the copy they actually generated and sent.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| Certificate | `Certificate` | Selects the certificate-holder copy's print status for update (used by `MarkCertHolderPrintStatus`). |
| Policyholder | `Policyholder` | Selects the policyholder copy's print status for update (used by `MarkPolicyHolderPrintStatus`); this is the value used by `GenerateCertificateReportForPolicy` and `GenerateCertificateSummaryReportForPolicy` after sending a policyholder report. |
| Both | `Both` | Selects both the certificate-holder and policyholder copies' print statuses for update in a single call; this is the value used by the full batch run in `GenerateCertificateBatchReports`. |

## Behavioral notes
- `ReportingService.MarkCertificateAsPrinted` (private) switches on this enum to decide whether to call `MarkCertHolderPrintStatus`, `MarkPolicyHolderPrintStatus`, or both for a given certificate.
- Each `Mark*PrintStatus` helper only flips the corresponding print status to `Printed` if it was previously `ReadyToPrint`, so re-processing an already-printed certificate with the same `WhichPrintStatus` value is a no-op for that side.*

## Constraints and usage notes
- The class carries a `CA1034:NestedTypesShouldNotBeVisible` suppression on the containing declaration, confirming this public nested enum is an intentional, accepted exception to that design rule rather than an oversight.

> **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/Policies/Certificates/ReportingService.cs`
