diff --git a/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI.csproj b/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI.csproj
index fbdaa2e6..9f4ee25e 100644
--- a/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI.csproj
+++ b/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI.csproj
@@ -41,6 +41,9 @@
+
+
+
Always
diff --git a/EnvelopeGenerator.ReceiverUI/Models/AnnotationDto.cs b/EnvelopeGenerator.ReceiverUI/Models/AnnotationDto.cs
deleted file mode 100644
index ced9c039..00000000
--- a/EnvelopeGenerator.ReceiverUI/Models/AnnotationDto.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-namespace EnvelopeGenerator.ReceiverUI.Models;
-
-///
-/// Represents a pre-assigned signature annotation position on a specific page.
-///
-/// Coordinate unit (X, Y): Inches (GdPicture14 native unit),
-/// origin at the top-left corner of the page, both axes increase downward/rightward.
-///
-/// Conversion to DevExpress: Multiply by 100 (DX uses 1/100 inch).
-/// Convert: xDX = xInches * 100.0
-///
-/// Conversion to PDF Points: Multiply by 72 (1 inch = 72 points).
-/// Convert: xPt = xInches * 72.0
-///
-/// Y-axis for PDF (bottom-left origin): Flip required for iText7.
-/// Convert: yPt = (pageHeightInches - yInches - elemHeightInches) * 72.0
-///
-[Obsolete("Use SignatureDto with SignatureService.")]
-public record AnnotationDto
-{
- /// Unique identifier of the annotation.
- public long Id { get; init; }
-
- /// 1-based page number within the document.
- public int Page { get; init; }
-
- /// Horizontal position in INCHES from the left edge of the page.
- public double X { get; init; }
-
- /// Vertical position in INCHES from the top edge of the page.
- public double Y { get; init; }
-}
diff --git a/EnvelopeGenerator.ReceiverUI/Pages/Example/ReportViewer.razor b/EnvelopeGenerator.ReceiverUI/Pages/Example/ReportViewer.razor
index 6e5f275e..42bfc0d7 100644
--- a/EnvelopeGenerator.ReceiverUI/Pages/Example/ReportViewer.razor
+++ b/EnvelopeGenerator.ReceiverUI/Pages/Example/ReportViewer.razor
@@ -6,6 +6,7 @@
@using DevExpress.Utils
@using DevExpress.XtraPrinting
@using DevExpress.XtraPrinting.Drawing
+@using EnvelopeGenerator.Application.Common.Dto
@using Microsoft.JSInterop
@using XtraReport = DevExpress.XtraReports.UI.XtraReport
@using BottomMarginBand = DevExpress.XtraReports.UI.BottomMarginBand
@@ -301,7 +302,10 @@ Shown="OnPopupShownAsync">
bool IsLoggingOut;
IReadOnlyList _annotations = [];
- IEnumerable AnnotationPages => _annotations.Select(a => a.Page).Distinct().OrderBy(p => p);
+ IEnumerable AnnotationPages => _annotations
+ .Select(a => a.Page ?? throw new InvalidOperationException($"Annotation page is missing for annotation ID {a.Id}. Annotation details: X={a.X}, Y={a.Y}"))
+ .Distinct()
+ .OrderBy(p => p);
EnvelopeReceiverDto? _envelopeReceiver;
record SignatureCapture(string DataUrl, string FullName, string Position, string Place);
SignatureCapture? _capturedSignature;
diff --git a/EnvelopeGenerator.ReceiverUI/Services/AnnotationService.cs b/EnvelopeGenerator.ReceiverUI/Services/AnnotationService.cs
index ead7437c..74bb3960 100644
--- a/EnvelopeGenerator.ReceiverUI/Services/AnnotationService.cs
+++ b/EnvelopeGenerator.ReceiverUI/Services/AnnotationService.cs
@@ -1,5 +1,6 @@
using System.Net.Http.Json;
using System.Text.Json;
+using EnvelopeGenerator.Application.Common.Dto;
using EnvelopeGenerator.ReceiverUI.Models;
using EnvelopeGenerator.ReceiverUI.Options;
using Microsoft.Extensions.Options;