Files
EnvelopeGenerator/fix-report-label-read-and-confirmed.md
TekH eb219291de Migrate WebUI to EnvelopeGenerator.Server
Updated documentation to reflect the migration from WebUI to EnvelopeGenerator.Server, including a new "Documentation Catalog" in `AGENTS.md`. Adjusted route mappings, render modes, and directory structure for Blazor components.

Revised coordinate system documentation and CSS for status colors to align with the new architecture. Updated YARP proxy and PDF.js configuration paths.

Migrated `MIGRATION_PLAN.md` to modernize `EnvelopeGenerator.Service` with C# Worker Service equivalents. Updated `FORM_APPLICATION_CONTEXT.md` and `RECEIVER_PDF_VIEWER_CONTEXT.md` to reflect the new architecture and planned viewer integration.

Fixed German translation issues in `fix-report-label-read-and-confirmed.md`. Standardized formatting and terminology across all files.
2026-09-22 16:17:09 +02:00

4.0 KiB

Fix: Report Label "Read and confirmed" for Read and Sign Envelopes

Status

✅ COMPLETED

Git Branch

fix/report-label-read-and-confirmed

Problem

In the Signature Certificate report (Signierungszertifikat), the history event list always showed "Document signed" for status DocumentSigned (code 2005) — even when the envelope type was "Read and Sign" (EnvelopeTypeId = 2).

For "Read and Sign" envelopes the correct label must be "Read and confirmed" (DE: "Gelesen und bestätigt").

Screenshot reference

The report shows a table with columns Ereignis | Benutzer | Zeitstempel.
The row with status 2005 displayed "Document signed" where "Read and confirmed" was expected.


Root Cause

ReportItem.ItemStatusTranslated in EnvelopeGenerator.CommonServices\Jobs\FinalizeDocument\ReportItem.vb resolved the display label by calling:

My.Resources.Model.ResourceManager.GetString(ItemStatus.ToString())

There was no branching logic to handle the Read and Sign envelope type. The same DocumentSigned key was always used regardless of envelope type.


Solution

Convention followed

The project already uses a RaC (Read and Confirm) suffix for Read-and-Sign label variants across all resource files:

Existing RaC keys
DocumentRejectedRaC
EnvelopeReportCreatedRaC
MessageConfirmationSentRaC

New resource key added: DocumentSignedRaC

Resource file Value
Model.resx (DE, default) Gelesen und bestätigt
Model.en.resx (EN) Read and confirmed

Logic change in ReportItem.vb

Public ReadOnly Property ItemStatusTranslated As String
    Get
        Dim oStatusKey = ItemStatus.ToString()

        If ItemStatus = EnvelopeStatus.DocumentSigned AndAlso
           Envelope IsNot Nothing AndAlso
           Envelope.IsReadAndConfirm() Then
            oStatusKey = "DocumentSignedRaC"
        End If

        Return My.Resources.Model.ResourceManager.GetString(oStatusKey)
    End Get
End Property

Envelope.IsReadAndConfirm() is defined in EnvelopeGenerator.Domain\Interfaces\IEnvelope.cs and returns true when EnvelopeTypeId == 2.


Files Changed

# File Change Status
1 EnvelopeGenerator.CommonServices\Jobs\FinalizeDocument\ReportItem.vb Added RaC branching logic to ItemStatusTranslated ? Done
2 EnvelopeGenerator.Domain\Resources\Model.resx Added DocumentSignedRaC = Gelesen und bestätigt ✅ Done
3 EnvelopeGenerator.CommonServices\Strings\Model.resx Added DocumentSignedRaC = Gelesen und bestätigt ✅ Done
4 EnvelopeGenerator.CommonServices\Strings\Model.en.resx Added DocumentSignedRaC = Read and confirmed ✅ Done
5 EnvelopeGenerator.Domain\Resources\Model.Designer.cs Added DocumentSignedRaC strongly-typed property ✅ Done

How to resume (for next agent)

All pending items are resource file additions only.
Each file needs one new <data> block inserted directly after the existing DocumentSigned entry:

<data name="DocumentSignedRaC" xml:space="preserve">
  <value>Gelesen und bestätigt</value>   <!-- DE files -->
  <!-- OR -->
  <value>Read and confirmed</value>       <!-- EN file -->
</data>

Model.Designer.cs also needs a new strongly-typed property added after DocumentSigned:

/// <summary>
///   Looks up a localized string similar to Gelesen und bestätigt.
/// </summary>
public static string DocumentSignedRaC {
    get {
        return ResourceManager.GetString("DocumentSignedRaC", resourceCulture);
    }
}

Testing

After changes, generate a Signature Certificate report for a Read and Sign envelope and verify:

  • History row with status 2005 shows "Read and confirmed" (EN)
  • History row with status 2005 shows "Gelesen und bestätigt" (DE)
  • Regular (non-RaC) envelopes still show "Document signed" / "Dokument unterzeichnet"