using System.Net; using System.Net.Http.Json; namespace EnvelopeGenerator.Server.Client.Services; public class PdfSignatureService(IHttpClientFactory httpClientFactory) { /// /// Calls POST /api/PdfSignature with the envelope id and returns the fully signed PDF bytes. /// public async Task GetSignedPdfAsync(int envelopeId, CancellationToken cancel = default) { using var http = httpClientFactory.CreateClient("EnvelopeGenerator.Server"); var response = await http.PostAsJsonAsync("/api/PdfSignature", new { Id = envelopeId }, cancel); if (!response.IsSuccessStatusCode) throw new HttpRequestException( $"Failed to load signed PDF. Status: {(int)response.StatusCode} ({response.ReasonPhrase ?? "Unknown"})", null, response.StatusCode); return await response.Content.ReadAsByteArrayAsync(cancel); } }