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.
This commit is contained in:
parent
27d9a149bc
commit
21859ca6e6
@ -13,7 +13,7 @@ namespace EnvelopeGenerator.Application.Histories.Queries.Read;
|
|||||||
/// <param name="Related">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.</param>
|
/// <param name="Related">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.</param>
|
||||||
/// <param name="OnlyLast">Abfrage zur Steuerung, ob nur der aktuelle Status oder der gesamte Datensatz zurückgegeben wird.</param>
|
/// <param name="OnlyLast">Abfrage zur Steuerung, ob nur der aktuelle Status oder der gesamte Datensatz zurückgegeben wird.</param>
|
||||||
public record ReadHistoryQuery(
|
public record ReadHistoryQuery(
|
||||||
int EnvelopeId,
|
int? EnvelopeId = null,
|
||||||
ReadEnvelopeQuery? Envelope = null,
|
ReadEnvelopeQuery? Envelope = null,
|
||||||
ReadReceiverQuery? Receiver = null,
|
ReadReceiverQuery? Receiver = null,
|
||||||
Constants.ReferenceType? Related = null,
|
Constants.ReferenceType? Related = null,
|
||||||
|
|||||||
@ -131,6 +131,8 @@ public class HistoryController : ControllerBase
|
|||||||
[Authorize]
|
[Authorize]
|
||||||
public async Task<IActionResult> GetAllAsync([FromQuery] ReadHistoryQuery history)
|
public async Task<IActionResult> GetAllAsync([FromQuery] ReadHistoryQuery history)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
bool withReceiver = false;
|
bool withReceiver = false;
|
||||||
bool withSender = false;
|
bool withSender = false;
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ public class EnvelopeHistoryRepository : CRUDRepository<EnvelopeHistory, long, E
|
|||||||
|
|
||||||
private IQueryable<EnvelopeHistory> By(int? envelopeId = null, string? userReference = null, int? status = null, bool withSender = false, bool withReceiver = false)
|
private IQueryable<EnvelopeHistory> 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)
|
if (envelopeId is not null)
|
||||||
query = query.Where(eh => eh.EnvelopeId == envelopeId);
|
query = query.Where(eh => eh.EnvelopeId == envelopeId);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user