Refactor architecture and optimize PDF rendering
Refactor `EnvelopeSenderPage.razor` to focus on UI composition and state orchestration, avoiding heavy domain logic. Adopt a modular page architecture to improve maintainability by splitting large pages into smaller subcomponents and centralizing shared logic. Conduct a performance review of sender/receiver flows to optimize route transitions, component lifecycle behavior, and loading-state correctness. Audit `Services` for redundant request/payload remapping and eliminate unnecessary transformations. Centralize dependency injection registrations into dedicated extension methods to reduce startup composition sprawl. Refactor `PdfRenderController.cs` and its client service contract to replace JSON/base64 transport for PDF rendering with binary streaming (`application/octet-stream` or multipart). Add a `TODO` comment to highlight the need for further optimization of large PDF handling to reduce payload size and memory pressure.
This commit is contained in:
@@ -11,6 +11,7 @@ namespace EnvelopeGenerator.Server.Controllers;
|
||||
[Route("api/[controller]")]
|
||||
public class PdfRenderController(IPdfPageImageRenderer renderer) : ControllerBase
|
||||
{
|
||||
// TODO(perf): Replace JSON/base64 transport for PdfBytes with application/octet-stream (or multipart) and stream-based request parsing to reduce payload size and allocation pressure for large PDFs.
|
||||
[HttpPost("pages")]
|
||||
[Authorize(AuthenticationSchemes = AuthScheme.Sender)]
|
||||
public async Task<IActionResult> RenderPages([FromBody] PdfRenderRequestDto? request, CancellationToken cancel)
|
||||
|
||||
Reference in New Issue
Block a user