Skip to content

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