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.
This commit is contained in:
tekh 2025-09-01 11:11:30 +02:00
parent ef7e694c9f
commit 48ce0d5f32
9 changed files with 20 additions and 21 deletions

View File

@ -2,10 +2,10 @@
using DigitalData.Core.Abstraction.Application.Repository; using DigitalData.Core.Abstraction.Application.Repository;
using EnvelopeGenerator.Application.Dto; using EnvelopeGenerator.Application.Dto;
using DigitalData.Core.Exceptions; using DigitalData.Core.Exceptions;
using EnvelopeGenerator.Domain;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
using MediatR; using MediatR;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using EnvelopeGenerator.Domain.Constants;
namespace EnvelopeGenerator.Application.EmailTemplates.Commands.Update; namespace EnvelopeGenerator.Application.EmailTemplates.Commands.Update;

View File

@ -1,6 +1,6 @@
using AutoMapper; using AutoMapper;
using EnvelopeGenerator.Application.Interfaces.Repositories; using EnvelopeGenerator.Application.Interfaces.Repositories;
using EnvelopeGenerator.Domain; using EnvelopeGenerator.Domain.Constants;
using MediatR; using MediatR;
namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read; namespace EnvelopeGenerator.Application.EmailTemplates.Queries.Read;

View File

@ -1,11 +1,10 @@
using DigitalData.Core.Abstraction.Application.Repository; using DigitalData.Core.Abstraction.Application.Repository;
using DigitalData.Core.Exceptions;
using EnvelopeGenerator.Application.Model; using EnvelopeGenerator.Application.Model;
using EnvelopeGenerator.Domain;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
using EnvelopeGenerator.Application.Extensions; using EnvelopeGenerator.Application.Extensions;
using MediatR; using MediatR;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using EnvelopeGenerator.Domain.Constants;
namespace EnvelopeGenerator.Application.EnvelopeReceivers.Queries; namespace EnvelopeGenerator.Application.EnvelopeReceivers.Queries;
@ -70,9 +69,9 @@ public class ReceiverAlreadySignedQueryHandler : IRequestHandler<ReceiverAlready
public async Task<bool> Handle(ReceiverAlreadySignedQuery request, CancellationToken cancel = default) public async Task<bool> Handle(ReceiverAlreadySignedQuery request, CancellationToken cancel = default)
{ {
return await _repo.Read() return await _repo.Read()
.Where(er => er.Envelope.Uuid == request.Envelope.Uuid) .Where(er => er.Envelope!.Uuid == request.Envelope.Uuid)
.Where(er => er.Receiver.Signature == request.Receiver.Signature) .Where(er => er.Receiver!.Signature == request.Receiver.Signature)
.Where(er => er.Envelope.History.Any(hist => hist.Status == EnvelopeStatus.DocumentSigned)) .Where(er => er.Envelope!.History.Any(hist => hist.Status == EnvelopeStatus.DocumentSigned))
.AnyAsync(cancel); .AnyAsync(cancel);
} }
} }

View File

@ -33,9 +33,7 @@ public class CreateEnvelopeCommandHandler : IRequestHandler<CreateEnvelopeComman
/// <returns></returns> /// <returns></returns>
public async Task<EnvelopeDto?> Handle(CreateEnvelopeCommand request, CancellationToken cancellationToken) public async Task<EnvelopeDto?> 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(request.UserId, request.Title, request.Message, request.TFAEnabled, cancellationToken);
var envelope = await _envelopeExecutor.CreateEnvelopeAsync(userId, request.Title, request.Message, request.TFAEnabled, cancellationToken);
return _mapper.Map<EnvelopeDto>(envelope); return _mapper.Map<EnvelopeDto>(envelope);
} }

View File

@ -1,5 +1,6 @@
using MediatR; using MediatR;
using EnvelopeGenerator.Application.Model; using EnvelopeGenerator.Application.Model;
using EnvelopeGenerator.Domain.Constants;
namespace EnvelopeGenerator.Application.Envelopes.Queries; namespace EnvelopeGenerator.Application.Envelopes.Queries;
@ -48,20 +49,20 @@ public record EnvelopeStatusQuery
/// <summary> /// <summary>
/// Der minimale Statuswert, der berücksichtigt werden. /// Der minimale Statuswert, der berücksichtigt werden.
/// </summary> /// </summary>
public Domain.Constants.EnvelopeStatus? Min { get; init; } public EnvelopeStatus? Min { get; init; }
/// <summary> /// <summary>
/// Der maximale Statuswert, der berücksichtigt werden. /// Der maximale Statuswert, der berücksichtigt werden.
/// </summary> /// </summary>
public Domain.Constants.EnvelopeStatus? Max { get; init; } public EnvelopeStatus? Max { get; init; }
/// <summary> /// <summary>
/// Eine Liste von Statuswerten, die einbezogen werden. /// Eine Liste von Statuswerten, die einbezogen werden.
/// </summary> /// </summary>
public Domain.Constants.EnvelopeStatus[]? Include { get; init; } public EnvelopeStatus[]? Include { get; init; }
/// <summary> /// <summary>
/// Eine Liste von Statuswerten, die ignoriert werden werden. /// Eine Liste von Statuswerten, die ignoriert werden werden.
/// </summary> /// </summary>
public Domain.Constants.EnvelopeStatus[]? Ignore { get; init; } public EnvelopeStatus[]? Ignore { get; init; }
} }

View File

@ -1,7 +1,7 @@
using DigitalData.Core.Abstraction.Application; using DigitalData.Core.Abstraction.Application;
using DigitalData.Core.Abstraction.Application.DTO; using DigitalData.Core.Abstraction.Application.DTO;
using EnvelopeGenerator.Application.Dto; using EnvelopeGenerator.Application.Dto;
using EnvelopeGenerator.Application.Envelopes.Queries; using EnvelopeGenerator.Domain.Constants;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Interfaces.Services; namespace EnvelopeGenerator.Application.Interfaces.Services;
@ -41,5 +41,5 @@ public interface IEnvelopeService : IBasicCRUDService<EnvelopeDto, Envelope, int
/// <param name="max_status"></param> /// <param name="max_status"></param>
/// <param name="ignore_statuses"></param> /// <param name="ignore_statuses"></param>
/// <returns></returns> /// <returns></returns>
Task<DataResult<IEnumerable<EnvelopeDto>>> ReadByUserAsync(int userId, Domain.Constants.EnvelopeStatus? min_status = null, Domain.Constants.EnvelopeStatus? max_status = null, params Domain.Constants.EnvelopeStatus[] ignore_statuses); Task<DataResult<IEnumerable<EnvelopeDto>>> ReadByUserAsync(int userId, EnvelopeStatus? min_status = null, EnvelopeStatus? max_status = null, params EnvelopeStatus[] ignore_statuses);
} }

View File

@ -10,11 +10,9 @@ using Microsoft.Extensions.Logging;
using EnvelopeGenerator.Application.Extensions; using EnvelopeGenerator.Application.Extensions;
using EnvelopeGenerator.Application.Dto.Messaging; using EnvelopeGenerator.Application.Dto.Messaging;
using EnvelopeGenerator.Application.Interfaces.Services; using EnvelopeGenerator.Application.Interfaces.Services;
using EnvelopeGenerator.Application.Envelopes;
using EnvelopeGenerator.Application.Envelopes.Queries; using EnvelopeGenerator.Application.Envelopes.Queries;
using EnvelopeGenerator.Application.Receivers.Queries; using EnvelopeGenerator.Application.Receivers.Queries;
using System.Reflection.Metadata; using EnvelopeGenerator.Domain.Constants;
using EnvelopeGenerator.Domain;
namespace EnvelopeGenerator.Application.Services; namespace EnvelopeGenerator.Application.Services;
@ -249,7 +247,7 @@ public class EnvelopeReceiverService : BasicCRUDService<IEnvelopeReceiverReposit
if (envelopeQuery?.Uuid is string uuid) if (envelopeQuery?.Uuid is string uuid)
er_list = er_list.Where(er => er.Envelope?.Uuid == uuid); er_list = er_list.Where(er => 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); er_list = er_list.Where(er => er.Envelope?.Status == status);
if(receiverQuery?.Id is int id) if(receiverQuery?.Id is int id)

View File

@ -5,6 +5,7 @@ using EnvelopeGenerator.Application.Interfaces.Services;
using EnvelopeGenerator.Application.Dto; using EnvelopeGenerator.Application.Dto;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
using EnvelopeGenerator.Application.Interfaces.Repositories; using EnvelopeGenerator.Application.Interfaces.Repositories;
using EnvelopeGenerator.Domain.Constants;
namespace EnvelopeGenerator.Application.Services; namespace EnvelopeGenerator.Application.Services;
@ -67,7 +68,7 @@ public class EnvelopeService : BasicCRUDService<IEnvelopeRepository, EnvelopeDto
/// <param name="max_status"></param> /// <param name="max_status"></param>
/// <param name="ignore_statuses"></param> /// <param name="ignore_statuses"></param>
/// <returns></returns> /// <returns></returns>
public async Task<DataResult<IEnumerable<EnvelopeDto>>> ReadByUserAsync(int userId, Domain.Constants.EnvelopeStatus? min_status = null, Domain.Constants.EnvelopeStatus? max_status = null, params Domain.Constants.EnvelopeStatus[] ignore_statuses) public async Task<DataResult<IEnumerable<EnvelopeDto>>> 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 users = await _repository.ReadByUserAsync(userId: userId, min_status: min_status, max_status: max_status, ignore_statuses: ignore_statuses);
var readDto = _mapper.Map<IEnumerable<EnvelopeDto>>(users); var readDto = _mapper.Map<IEnumerable<EnvelopeDto>>(users);

View File

@ -2,6 +2,8 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using EnvelopeGenerator.Domain.Interfaces; using EnvelopeGenerator.Domain.Interfaces;
using EnvelopeGenerator.Domain.Constants;
#if NETFRAMEWORK #if NETFRAMEWORK
using System; using System;