From 48ce0d5f32967fbcf9bfc1edd1fe36d52ed4c0fd Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 1 Sep 2025 11:11:30 +0200 Subject: [PATCH] Refactor EnvelopeStatus usage and streamline code - Added `EnvelopeGenerator.Domain.Constants` in multiple files, replacing `Domain.Constants.EnvelopeStatus` with `EnvelopeStatus` for improved readability. - Modified `CreateEnvelopeCommandHandler.cs` to directly use `request.UserId`, eliminating unnecessary local variable assignment. - Identified potential duplication in query logic within `ReceiverAlreadySignedQuery.cs`. - Updated `IEnvelopeService`, `EnvelopeReceiverService`, and `EnvelopeService` to ensure consistent usage of the simplified `EnvelopeStatus`. - Overall, these changes enhance code maintainability and clarity. --- .../Commands/Update/UpdateEmailTemplateCommandHandler.cs | 2 +- .../Queries/Read/ReadEmailTemplateQueryHandler.cs | 2 +- .../Queries/ReceiverAlreadySignedQuery.cs | 9 ++++----- .../Envelopes/Commands/CreateEnvelopeCommandHandler.cs | 4 +--- .../Envelopes/Queries/ReadEnvelopeQuery.cs | 9 +++++---- .../Interfaces/Services/IEnvelopeService.cs | 4 ++-- .../Services/EnvelopeReceiverService.cs | 6 ++---- .../Services/EnvelopeService.cs | 3 ++- EnvelopeGenerator.Domain/Entities/EnvelopeHistory.cs | 2 ++ 9 files changed, 20 insertions(+), 21 deletions(-) diff --git a/EnvelopeGenerator.Application/EmailTemplates/Commands/Update/UpdateEmailTemplateCommandHandler.cs b/EnvelopeGenerator.Application/EmailTemplates/Commands/Update/UpdateEmailTemplateCommandHandler.cs index 09a85eaa..8af63d37 100644 --- a/EnvelopeGenerator.Application/EmailTemplates/Commands/Update/UpdateEmailTemplateCommandHandler.cs +++ b/EnvelopeGenerator.Application/EmailTemplates/Commands/Update/UpdateEmailTemplateCommandHandler.cs @@ -2,10 +2,10 @@ using DigitalData.Core.Abstraction.Application.Repository; using EnvelopeGenerator.Application.Dto; using DigitalData.Core.Exceptions; -using EnvelopeGenerator.Domain; using EnvelopeGenerator.Domain.Entities; using MediatR; using Microsoft.EntityFrameworkCore; +using EnvelopeGenerator.Domain.Constants; namespace EnvelopeGenerator.Application.EmailTemplates.Commands.Update; diff --git a/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQueryHandler.cs b/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQueryHandler.cs index cfc72e1e..5d9082c7 100644 --- a/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQueryHandler.cs +++ b/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQueryHandler.cs @@ -1,6 +1,6 @@ using AutoMapper; using EnvelopeGenerator.Application.Interfaces.Repositories; -using EnvelopeGenerator.Domain; +using EnvelopeGenerator.Domain.Constants; using MediatR; namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read; diff --git a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReceiverAlreadySignedQuery.cs b/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReceiverAlreadySignedQuery.cs index bbab6d10..d64b4375 100644 --- a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReceiverAlreadySignedQuery.cs +++ b/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReceiverAlreadySignedQuery.cs @@ -1,11 +1,10 @@ using DigitalData.Core.Abstraction.Application.Repository; -using DigitalData.Core.Exceptions; using EnvelopeGenerator.Application.Model; -using EnvelopeGenerator.Domain; using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Application.Extensions; using MediatR; using Microsoft.EntityFrameworkCore; +using EnvelopeGenerator.Domain.Constants; namespace EnvelopeGenerator.Application.EnvelopeReceivers.Queries; @@ -70,9 +69,9 @@ public class ReceiverAlreadySignedQueryHandler : IRequestHandler Handle(ReceiverAlreadySignedQuery request, CancellationToken cancel = default) { return await _repo.Read() - .Where(er => er.Envelope.Uuid == request.Envelope.Uuid) - .Where(er => er.Receiver.Signature == request.Receiver.Signature) - .Where(er => er.Envelope.History.Any(hist => hist.Status == EnvelopeStatus.DocumentSigned)) + .Where(er => er.Envelope!.Uuid == request.Envelope.Uuid) + .Where(er => er.Receiver!.Signature == request.Receiver.Signature) + .Where(er => er.Envelope!.History.Any(hist => hist.Status == EnvelopeStatus.DocumentSigned)) .AnyAsync(cancel); } } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Envelopes/Commands/CreateEnvelopeCommandHandler.cs b/EnvelopeGenerator.Application/Envelopes/Commands/CreateEnvelopeCommandHandler.cs index 9844b4e7..e7a39711 100644 --- a/EnvelopeGenerator.Application/Envelopes/Commands/CreateEnvelopeCommandHandler.cs +++ b/EnvelopeGenerator.Application/Envelopes/Commands/CreateEnvelopeCommandHandler.cs @@ -33,9 +33,7 @@ public class CreateEnvelopeCommandHandler : IRequestHandler public async Task Handle(CreateEnvelopeCommand request, CancellationToken cancellationToken) { - int userId = request.UserId ?? throw new InvalidOperationException("UserId cannot be null when creating an envelope."); - - var envelope = await _envelopeExecutor.CreateEnvelopeAsync(userId, request.Title, request.Message, request.TFAEnabled, cancellationToken); + var envelope = await _envelopeExecutor.CreateEnvelopeAsync(request.UserId, request.Title, request.Message, request.TFAEnabled, cancellationToken); return _mapper.Map(envelope); } diff --git a/EnvelopeGenerator.Application/Envelopes/Queries/ReadEnvelopeQuery.cs b/EnvelopeGenerator.Application/Envelopes/Queries/ReadEnvelopeQuery.cs index 29c365b1..ad48f828 100644 --- a/EnvelopeGenerator.Application/Envelopes/Queries/ReadEnvelopeQuery.cs +++ b/EnvelopeGenerator.Application/Envelopes/Queries/ReadEnvelopeQuery.cs @@ -1,5 +1,6 @@ using MediatR; using EnvelopeGenerator.Application.Model; +using EnvelopeGenerator.Domain.Constants; namespace EnvelopeGenerator.Application.Envelopes.Queries; @@ -48,20 +49,20 @@ public record EnvelopeStatusQuery /// /// Der minimale Statuswert, der berücksichtigt werden. /// - public Domain.Constants.EnvelopeStatus? Min { get; init; } + public EnvelopeStatus? Min { get; init; } /// /// Der maximale Statuswert, der berücksichtigt werden. /// - public Domain.Constants.EnvelopeStatus? Max { get; init; } + public EnvelopeStatus? Max { get; init; } /// /// Eine Liste von Statuswerten, die einbezogen werden. /// - public Domain.Constants.EnvelopeStatus[]? Include { get; init; } + public EnvelopeStatus[]? Include { get; init; } /// /// Eine Liste von Statuswerten, die ignoriert werden werden. /// - public Domain.Constants.EnvelopeStatus[]? Ignore { get; init; } + public EnvelopeStatus[]? Ignore { get; init; } } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Interfaces/Services/IEnvelopeService.cs b/EnvelopeGenerator.Application/Interfaces/Services/IEnvelopeService.cs index f5556c2d..b295ca62 100644 --- a/EnvelopeGenerator.Application/Interfaces/Services/IEnvelopeService.cs +++ b/EnvelopeGenerator.Application/Interfaces/Services/IEnvelopeService.cs @@ -1,7 +1,7 @@ using DigitalData.Core.Abstraction.Application; using DigitalData.Core.Abstraction.Application.DTO; using EnvelopeGenerator.Application.Dto; -using EnvelopeGenerator.Application.Envelopes.Queries; +using EnvelopeGenerator.Domain.Constants; using EnvelopeGenerator.Domain.Entities; namespace EnvelopeGenerator.Application.Interfaces.Services; @@ -41,5 +41,5 @@ public interface IEnvelopeService : IBasicCRUDService /// /// - Task>> ReadByUserAsync(int userId, Domain.Constants.EnvelopeStatus? min_status = null, Domain.Constants.EnvelopeStatus? max_status = null, params Domain.Constants.EnvelopeStatus[] ignore_statuses); + Task>> ReadByUserAsync(int userId, EnvelopeStatus? min_status = null, EnvelopeStatus? max_status = null, params EnvelopeStatus[] ignore_statuses); } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs b/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs index fa6a18d7..6bfea539 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs @@ -10,11 +10,9 @@ using Microsoft.Extensions.Logging; using EnvelopeGenerator.Application.Extensions; using EnvelopeGenerator.Application.Dto.Messaging; using EnvelopeGenerator.Application.Interfaces.Services; -using EnvelopeGenerator.Application.Envelopes; using EnvelopeGenerator.Application.Envelopes.Queries; using EnvelopeGenerator.Application.Receivers.Queries; -using System.Reflection.Metadata; -using EnvelopeGenerator.Domain; +using EnvelopeGenerator.Domain.Constants; namespace EnvelopeGenerator.Application.Services; @@ -249,7 +247,7 @@ public class EnvelopeReceiverService : BasicCRUDService er.Envelope?.Uuid == uuid); - if (envelopeQuery?.Status?.Include?.FirstOrDefault() is Domain.Constants.EnvelopeStatus status) + if (envelopeQuery?.Status?.Include?.FirstOrDefault() is EnvelopeStatus status) er_list = er_list.Where(er => er.Envelope?.Status == status); if(receiverQuery?.Id is int id) diff --git a/EnvelopeGenerator.Application/Services/EnvelopeService.cs b/EnvelopeGenerator.Application/Services/EnvelopeService.cs index f0740263..0f257874 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeService.cs @@ -5,6 +5,7 @@ using EnvelopeGenerator.Application.Interfaces.Services; using EnvelopeGenerator.Application.Dto; using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Application.Interfaces.Repositories; +using EnvelopeGenerator.Domain.Constants; namespace EnvelopeGenerator.Application.Services; @@ -67,7 +68,7 @@ public class EnvelopeService : BasicCRUDService /// /// - public async Task>> ReadByUserAsync(int userId, Domain.Constants.EnvelopeStatus? min_status = null, Domain.Constants.EnvelopeStatus? max_status = null, params Domain.Constants.EnvelopeStatus[] ignore_statuses) + public async Task>> ReadByUserAsync(int userId, EnvelopeStatus? min_status = null, EnvelopeStatus? max_status = null, params EnvelopeStatus[] ignore_statuses) { var users = await _repository.ReadByUserAsync(userId: userId, min_status: min_status, max_status: max_status, ignore_statuses: ignore_statuses); var readDto = _mapper.Map>(users); diff --git a/EnvelopeGenerator.Domain/Entities/EnvelopeHistory.cs b/EnvelopeGenerator.Domain/Entities/EnvelopeHistory.cs index c71a6109..3e0fd618 100644 --- a/EnvelopeGenerator.Domain/Entities/EnvelopeHistory.cs +++ b/EnvelopeGenerator.Domain/Entities/EnvelopeHistory.cs @@ -2,6 +2,8 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using EnvelopeGenerator.Domain.Interfaces; +using EnvelopeGenerator.Domain.Constants; + #if NETFRAMEWORK using System;