From 94d43bce24bee39f6c3df6d5e39e84ddb3a4fa81 Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 30 Jun 2025 13:37:54 +0200 Subject: [PATCH] Deprecate repositories and update service interfaces - Marked `IEnvelopeReceiverRepository` and several repository classes as obsolete, recommending the use of `IRepository`. - Corrected `using` directive in `IReceiverService.cs`. - Removed `UpdateAsync` method from `IReceiverService`. - Enhanced `ISmsSender` interface with new properties and methods. - Updated `ReceiverCreateDto`, `ReceiverReadDto`, and `UserReceiverDto` to enforce non-nullable properties. - Refactored `TestReceiverController` to suggest using `MediatR`. --- .../IEnvelopeReceiverRepository.cs | 1 + .../Contracts/Services/IReceiverService.cs | 11 +----- .../Contracts/Services/ISmsSender.cs | 12 +++++++ .../DTOs/Receiver/ReceiverCreateDto.cs | 4 +-- .../DTOs/Receiver/ReceiverReadDto.cs | 35 +++++++++++++++++-- .../DTOs/UserReceiverDto.cs | 2 +- .../Repositories/ConfigRepository.cs | 1 + .../DocumentReceiverElementRepository.cs | 1 + .../Repositories/DocumentStatusRepository.cs | 2 +- .../EnvelopeCertificateRepository.cs | 1 + .../EnvelopeDocumentRepository.cs | 1 + .../EnvelopeReceiverReadOnlyRepository.cs | 1 + .../Repositories/EnvelopeRepository.cs | 1 + .../Repositories/EnvelopeTypeRepository.cs | 1 + .../Repositories/ReceiverRepository.cs | 1 + .../Repositories/UserReceiverRepository.cs | 1 + .../Test/TestReceiverController.cs | 10 +++--- 17 files changed, 65 insertions(+), 21 deletions(-) diff --git a/EnvelopeGenerator.Application/Contracts/Repositories/IEnvelopeReceiverRepository.cs b/EnvelopeGenerator.Application/Contracts/Repositories/IEnvelopeReceiverRepository.cs index 135071de..c822f1fa 100644 --- a/EnvelopeGenerator.Application/Contracts/Repositories/IEnvelopeReceiverRepository.cs +++ b/EnvelopeGenerator.Application/Contracts/Repositories/IEnvelopeReceiverRepository.cs @@ -6,6 +6,7 @@ namespace EnvelopeGenerator.Application.Contracts.Repositories; /// /// /// +[Obsolete("Use IRepository")] public interface IEnvelopeReceiverRepository : ICRUDRepository { /// diff --git a/EnvelopeGenerator.Application/Contracts/Services/IReceiverService.cs b/EnvelopeGenerator.Application/Contracts/Services/IReceiverService.cs index 0f9293db..f6379c15 100644 --- a/EnvelopeGenerator.Application/Contracts/Services/IReceiverService.cs +++ b/EnvelopeGenerator.Application/Contracts/Services/IReceiverService.cs @@ -1,5 +1,4 @@ -using DigitalData.Core.Abstractions; -using DigitalData.Core.Abstraction.Application; +using DigitalData.Core.Abstraction.Application; using DigitalData.Core.Abstraction.Application.DTO; using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Domain.Entities; @@ -27,12 +26,4 @@ public interface IReceiverService : ICRUDService /// Task DeleteByAsync(string? emailAddress = null, string? signature = null); - - /// - /// - /// - /// - /// - /// - Task UpdateAsync(TUpdateDto updateDto); } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Contracts/Services/ISmsSender.cs b/EnvelopeGenerator.Application/Contracts/Services/ISmsSender.cs index 7c437660..01bc5ec8 100644 --- a/EnvelopeGenerator.Application/Contracts/Services/ISmsSender.cs +++ b/EnvelopeGenerator.Application/Contracts/Services/ISmsSender.cs @@ -3,9 +3,21 @@ namespace EnvelopeGenerator.Application.Contracts.Services; //TODO: move to DigitalData.Core +/// +/// +/// public interface ISmsSender { + /// + /// + /// string ServiceProvider { get; } + /// + /// + /// + /// + /// + /// Task SendSmsAsync(string recipient, string message); } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverCreateDto.cs b/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverCreateDto.cs index e20d2be2..9484bac4 100644 --- a/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverCreateDto.cs +++ b/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverCreateDto.cs @@ -18,7 +18,7 @@ public record ReceiverCreateDto { _sha256HexOfMail = new(() => { - var bytes_arr = Encoding.UTF8.GetBytes(EmailAddress.ToUpper()); + var bytes_arr = Encoding.UTF8.GetBytes(EmailAddress!.ToUpper()); var hash_arr = SHA256.HashData(bytes_arr); var hexa_str = BitConverter.ToString(hash_arr); return hexa_str.Replace("-", string.Empty); @@ -37,7 +37,7 @@ public record ReceiverCreateDto public string? TotpSecretkey { get; init; } /// - /// var bytes_arr = Encoding.UTF8.GetBytes(EmailAddress.ToUpper());
+ /// var bytes_arr = Encoding.UTF8.GetBytes(EmailAddress.ToUpper());
/// var hash_arr = SHA256.HashData(bytes_arr); /// var hexa_str = BitConverter.ToString(hash_arr); /// return hexa_str.Replace("-", string.Empty); diff --git a/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverReadDto.cs b/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverReadDto.cs index 1b1d75dd..0252e398 100644 --- a/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverReadDto.cs +++ b/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverReadDto.cs @@ -4,26 +4,57 @@ using System.Text.Json.Serialization; namespace EnvelopeGenerator.Application.DTOs.Receiver; +/// +/// +/// [ApiExplorerSettings(IgnoreApi = true)] public class ReceiverReadDto { + /// + /// + /// public int Id { get; set; } - public string EmailAddress { get; set; } + /// + /// + /// + public required string EmailAddress { get; set; } - public string Signature { get; set; } + /// + /// + /// + public required string Signature { get; set; } + /// + /// + /// public DateTime AddedWhen { get; set; } + /// + /// + /// [JsonIgnore] public IEnumerable? EnvelopeReceivers { get; set; } + /// + /// + /// public string? LastUsedName => EnvelopeReceivers?.LastOrDefault()?.Name; + /// + /// + /// public string? TotpSecretkey { get; set; } = null; + /// + /// + /// public DateTime? TfaRegDeadline { get; set; } + /// + /// + /// + /// public override int GetHashCode() { return Id.GetHashCode(); diff --git a/EnvelopeGenerator.Application/DTOs/UserReceiverDto.cs b/EnvelopeGenerator.Application/DTOs/UserReceiverDto.cs index eb9f5d66..02c5533e 100644 --- a/EnvelopeGenerator.Application/DTOs/UserReceiverDto.cs +++ b/EnvelopeGenerator.Application/DTOs/UserReceiverDto.cs @@ -26,7 +26,7 @@ public class UserReceiverDto /// /// Gets or sets the name of the receiver. /// - public string Name { get; set; } + public required string Name { get; set; } /// /// Gets or sets the company name of the receiver. diff --git a/EnvelopeGenerator.Infrastructure/Repositories/ConfigRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/ConfigRepository.cs index 103e2ddb..24618f72 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/ConfigRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/ConfigRepository.cs @@ -5,6 +5,7 @@ using Microsoft.EntityFrameworkCore; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class ConfigRepository : CRUDRepository, IConfigRepository { public ConfigRepository(EGDbContext dbContext) : base(dbContext, dbContext.Configs) diff --git a/EnvelopeGenerator.Infrastructure/Repositories/DocumentReceiverElementRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/DocumentReceiverElementRepository.cs index c663c7fe..c3c13c59 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/DocumentReceiverElementRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/DocumentReceiverElementRepository.cs @@ -4,6 +4,7 @@ using EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class DocumentReceiverElementRepository : CRUDRepository, IDocumentReceiverElementRepository { public DocumentReceiverElementRepository(EGDbContext dbContext) : base(dbContext, dbContext.DocumentReceiverElements) diff --git a/EnvelopeGenerator.Infrastructure/Repositories/DocumentStatusRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/DocumentStatusRepository.cs index 83b3e638..dd375cbf 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/DocumentStatusRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/DocumentStatusRepository.cs @@ -1,10 +1,10 @@ using DigitalData.Core.Infrastructure; -using DigitalData.UserManager.Infrastructure.Repositories; using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class DocumentStatusRepository : CRUDRepository, IDocumentStatusRepository { public DocumentStatusRepository(EGDbContext dbContext) : base(dbContext, dbContext.DocumentStatus) diff --git a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeCertificateRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeCertificateRepository.cs index c5a0dba3..0969d86e 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeCertificateRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeCertificateRepository.cs @@ -4,6 +4,7 @@ using EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class EnvelopeCertificateRepository : CRUDRepository, IEnvelopeCertificateRepository { public EnvelopeCertificateRepository(EGDbContext dbContext) : base(dbContext, dbContext.EnvelopeCertificates) diff --git a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeDocumentRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeDocumentRepository.cs index 2f15f10f..1481507f 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeDocumentRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeDocumentRepository.cs @@ -4,6 +4,7 @@ using EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class EnvelopeDocumentRepository : CRUDRepository, IEnvelopeDocumentRepository { public EnvelopeDocumentRepository(EGDbContext dbContext) : base(dbContext, dbContext.EnvelopeDocument) diff --git a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeReceiverReadOnlyRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeReceiverReadOnlyRepository.cs index 5f442d64..b69bbefb 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeReceiverReadOnlyRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeReceiverReadOnlyRepository.cs @@ -5,6 +5,7 @@ using Microsoft.EntityFrameworkCore; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class EnvelopeReceiverReadOnlyRepository : CRUDRepository, IEnvelopeReceiverReadOnlyRepository { private readonly IEnvelopeRepository _envRepo; diff --git a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeRepository.cs index 5efbe348..5fb74c5c 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeRepository.cs @@ -5,6 +5,7 @@ using Microsoft.EntityFrameworkCore; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class EnvelopeRepository : CRUDRepository, IEnvelopeRepository { public EnvelopeRepository(EGDbContext dbContext) : base(dbContext, dbContext.Envelopes) diff --git a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeTypeRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeTypeRepository.cs index 3ab4488f..db87d712 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeTypeRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/EnvelopeTypeRepository.cs @@ -4,6 +4,7 @@ using EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class EnvelopeTypeRepository : CRUDRepository, IEnvelopeTypeRepository { public EnvelopeTypeRepository(EGDbContext dbContext) : base(dbContext, dbContext.EnvelopeTypes) diff --git a/EnvelopeGenerator.Infrastructure/Repositories/ReceiverRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/ReceiverRepository.cs index 89f795c2..bb339fee 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/ReceiverRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/ReceiverRepository.cs @@ -5,6 +5,7 @@ using Microsoft.EntityFrameworkCore; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class ReceiverRepository : CRUDRepository, IReceiverRepository { public ReceiverRepository(EGDbContext dbContext) : base(dbContext, dbContext.Receivers) diff --git a/EnvelopeGenerator.Infrastructure/Repositories/UserReceiverRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/UserReceiverRepository.cs index 4b9f8f22..e258d402 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/UserReceiverRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/UserReceiverRepository.cs @@ -4,6 +4,7 @@ using EnvelopeGenerator.Application.Contracts.Repositories; namespace EnvelopeGenerator.Infrastructure.Repositories; +[Obsolete("Use IRepository")] public class UserReceiverRepository : CRUDRepository, IUserReceiverRepository { public UserReceiverRepository(EGDbContext dbContext) : base(dbContext, dbContext.UserReceivers) diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestReceiverController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestReceiverController.cs index 85fe012b..62576cca 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestReceiverController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestReceiverController.cs @@ -3,13 +3,13 @@ using EnvelopeGenerator.Application.Contracts.Services; using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Domain.Entities; -namespace EnvelopeGenerator.Web.Controllers.Test +namespace EnvelopeGenerator.Web.Controllers.Test; + +[Obsolete("Use MediatR")] +public class TestReceiverController : CRUDControllerBase { - public class TestReceiverController : CRUDControllerBase + public TestReceiverController(ILogger logger, IReceiverService service) : base(logger, service) { - public TestReceiverController(ILogger logger, IReceiverService service) : base(logger, service) - { - } } } \ No newline at end of file