From 21859ca6e661624067cb33c5096c774aebf8d10a Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Tue, 6 May 2025 23:23:33 +0200 Subject: [PATCH] Refactor ReadHistoryQuery and optimize repository queries - Changed `EnvelopeId` in `ReadHistoryQuery` to nullable for improved flexibility in queries. - Introduced `withReceiver` variable in `HistoryController` to enhance query logic for retrieving history records. - Updated `EnvelopeHistoryRepository` to use `AsNoTracking()` for better performance in read-only scenarios. --- .../Histories/Queries/Read/ReadHistoryQuery.cs | 2 +- EnvelopeGenerator.GeneratorAPI/Controllers/HistoryController.cs | 2 ++ .../Repositories/EnvelopeHistoryRepository.cs | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryQuery.cs b/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryQuery.cs index 2f8ba313..452fc714 100644 --- a/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryQuery.cs +++ b/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryQuery.cs @@ -13,7 +13,7 @@ namespace EnvelopeGenerator.Application.Histories.Queries.Read; /// Abfrage, die angibt, worauf sich der Datensatz bezieht. Ob er sich auf den Empfänger, den Sender oder das System bezieht, wird durch 0, 1 bzw. 2 dargestellt. /// Abfrage zur Steuerung, ob nur der aktuelle Status oder der gesamte Datensatz zurückgegeben wird. public record ReadHistoryQuery( - int EnvelopeId, + int? EnvelopeId = null, ReadEnvelopeQuery? Envelope = null, ReadReceiverQuery? Receiver = null, Constants.ReferenceType? Related = null, diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/HistoryController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/HistoryController.cs index 0569bf0d..8c934f3e 100644 --- a/EnvelopeGenerator.GeneratorAPI/Controllers/HistoryController.cs +++ b/EnvelopeGenerator.GeneratorAPI/Controllers/HistoryController.cs @@ -131,6 +131,8 @@ public class HistoryController : ControllerBase [Authorize] public async Task GetAllAsync([FromQuery] ReadHistoryQuery history) { + + bool withReceiver = false; bool withSender = false; diff --git a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeHistoryRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeHistoryRepository.cs index 18ccc27e..cfa8313a 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeHistoryRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeHistoryRepository.cs @@ -13,7 +13,7 @@ public class EnvelopeHistoryRepository : CRUDRepository By(int? envelopeId = null, string? userReference = null, int? status = null, bool withSender = false, bool withReceiver = false) { - var query = _dbSet.AsQueryable(); + var query = _dbSet.AsNoTracking(); if (envelopeId is not null) query = query.Where(eh => eh.EnvelopeId == envelopeId);