diff --git a/EnvelopeGenerator.Application/Contracts/Repositories/IEmailTemplateRepository.cs b/EnvelopeGenerator.Application/Contracts/Repositories/IEmailTemplateRepository.cs
index a36de569..73749745 100644
--- a/EnvelopeGenerator.Application/Contracts/Repositories/IEmailTemplateRepository.cs
+++ b/EnvelopeGenerator.Application/Contracts/Repositories/IEmailTemplateRepository.cs
@@ -7,7 +7,7 @@ namespace EnvelopeGenerator.Application.Contracts.Repositories;
///
///
///
-[Obsolete("Use Read-method returning IReadQuery instead.")]
+[Obsolete("Use IRepository")]
public interface IEmailTemplateRepository : ICRUDRepository
{
///
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/Repositories/IUserReceiverRepository.cs b/EnvelopeGenerator.Application/Contracts/Repositories/IUserReceiverRepository.cs
deleted file mode 100644
index e94fbd9e..00000000
--- a/EnvelopeGenerator.Application/Contracts/Repositories/IUserReceiverRepository.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using DigitalData.Core.Abstraction.Application.Repository;
-using EnvelopeGenerator.Domain.Entities;
-
-namespace EnvelopeGenerator.Application.Contracts.Repositories;
-
-///
-///
-///
-[Obsolete("Use IRepository")]
-public interface IUserReceiverRepository : ICRUDRepository
-{
-}
\ No newline at end of file
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/Contracts/Services/IUserReceiverService.cs b/EnvelopeGenerator.Application/Contracts/Services/IUserReceiverService.cs
deleted file mode 100644
index dea30c94..00000000
--- a/EnvelopeGenerator.Application/Contracts/Services/IUserReceiverService.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using DigitalData.Core.Abstraction.Application;
-using EnvelopeGenerator.Application.DTOs;
-using EnvelopeGenerator.Domain.Entities;
-
-namespace EnvelopeGenerator.Application.Contracts.Services;
-
-///
-///
-///
-[Obsolete("Use MediatR")]
-public interface IUserReceiverService : IBasicCRUDService
-{
-}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/DTOs/ConfigDto.cs b/EnvelopeGenerator.Application/DTOs/ConfigDto.cs
index 00ffb8dd..0745a55a 100644
--- a/EnvelopeGenerator.Application/DTOs/ConfigDto.cs
+++ b/EnvelopeGenerator.Application/DTOs/ConfigDto.cs
@@ -8,11 +8,6 @@ namespace EnvelopeGenerator.Application.DTOs;
[ApiExplorerSettings(IgnoreApi = true)]
public class ConfigDto
{
- ///
- /// Gets or sets the path to the document.
- ///
- public string? DocumentPath { get; set; }
-
///
/// Gets or sets the sending profile identifier.
///
@@ -21,7 +16,7 @@ public class ConfigDto
///
/// Gets or sets the signature host URL or name.
///
- public string? SignatureHost { get; set; }
+ public required string SignatureHost { get; set; }
///
/// Gets or sets the name of the external program.
diff --git a/EnvelopeGenerator.Application/DTOs/MappingProfile.cs b/EnvelopeGenerator.Application/DTOs/MappingProfile.cs
index 3dd3797a..a5815ce0 100644
--- a/EnvelopeGenerator.Application/DTOs/MappingProfile.cs
+++ b/EnvelopeGenerator.Application/DTOs/MappingProfile.cs
@@ -37,7 +37,6 @@ public class MappingProfile : Profile
CreateMap();
CreateMap();
CreateMap();
- CreateMap();
CreateMap();
// DTO to Entity mappings
@@ -55,7 +54,6 @@ public class MappingProfile : Profile
CreateMap().ForMember(rcv => rcv.EnvelopeReceivers, rcvReadDto => rcvReadDto.Ignore());
CreateMap();
CreateMap();
- CreateMap();
CreateMap();
CreateMap();
CreateMap();
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
deleted file mode 100644
index eb9f5d66..00000000
--- a/EnvelopeGenerator.Application/DTOs/UserReceiverDto.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-
-namespace EnvelopeGenerator.Application.DTOs;
-
-///
-/// Data Transfer Object representing a user receiver with associated details.
-///
-[ApiExplorerSettings(IgnoreApi = true)]
-public class UserReceiverDto
-{
- ///
- /// Gets or sets the unique identifier of the user receiver.
- ///
- public int Id { get; set; }
-
- ///
- /// Gets or sets the identifier of the user associated with the receiver.
- ///
- public int UserId { get; set; }
-
- ///
- /// Gets or sets the identifier of the receiver.
- ///
- public int ReceiverId { get; set; }
-
- ///
- /// Gets or sets the name of the receiver.
- ///
- public string Name { get; set; }
-
- ///
- /// Gets or sets the company name of the receiver.
- ///
- public string CompanyName { get; set; }
-
- ///
- /// Gets or sets the job title of the receiver.
- ///
- public string JobTitle { get; set; }
-
- ///
- /// Gets or sets the timestamp when the user receiver was added.
- ///
- public DateTime AddedWhen { get; set; }
-}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/EmailTemplates/Commands/Reset/ResetEmailTemplateCommand.cs b/EnvelopeGenerator.Application/EmailTemplates/Commands/Reset/ResetEmailTemplateCommand.cs
index 1bcfda0e..fa988a54 100644
--- a/EnvelopeGenerator.Application/EmailTemplates/Commands/Reset/ResetEmailTemplateCommand.cs
+++ b/EnvelopeGenerator.Application/EmailTemplates/Commands/Reset/ResetEmailTemplateCommand.cs
@@ -5,20 +5,19 @@ namespace EnvelopeGenerator.Application.EmailTemplates.Commands.Reset;
///
/// Ein Befehl zum Zurücksetzen einer E-Mail-Vorlage auf die Standardwerte.
-/// Erbt von und ermöglicht die Angabe einer optionalen ID und eines Typs der E-Mail-Vorlage.
+/// Erbt von und ermöglicht die Angabe einer optionalen ID und eines Typs der E-Mail-Vorlage.
+/// Beispiele:
+/// 0 - DocumentReceived: Benachrichtigung über den Empfang eines Dokuments.
+/// 1 - DocumentSigned: Benachrichtigung über die Unterzeichnung eines Dokuments.
+/// 2 - DocumentDeleted: Benachrichtigung über das Löschen eines Dokuments.
+/// 3 - DocumentCompleted: Benachrichtigung über den Abschluss eines Dokuments.
+/// 4 - DocumentAccessCodeReceived: Benachrichtigung über den Erhalt eines Zugangscodes.
+/// 5 - DocumentShared: Benachrichtigung über das Teilen eines Dokuments.
+/// 6 - TotpSecret: Benachrichtigung über ein TOTP-Geheimnis.
+/// 7 - DocumentRejected_ADM (Für den Absender): Mail an den Absender, wenn das Dokument abgelehnt wird.
+/// 8 - DocumentRejected_REC (Für den ablehnenden Empfänger): Mail an den ablehnenden Empfänger, wenn das Dokument abgelehnt wird.
+/// 9 - DocumentRejected_REC_2 (Für sonstige Empfänger): Mail an andere Empfänger (Brief), wenn das Dokument abgelehnt wird.
///
-/// Beispiele:
-/// 0 - DocumentReceived: Benachrichtigung über den Empfang eines Dokuments.
-/// 1 - DocumentSigned: Benachrichtigung über die Unterzeichnung eines Dokuments.
-/// 2 - DocumentDeleted: Benachrichtigung über das Löschen eines Dokuments.
-/// 3 - DocumentCompleted: Benachrichtigung über den Abschluss eines Dokuments.
-/// 4 - DocumentAccessCodeReceived: Benachrichtigung über den Erhalt eines Zugangscodes.
-/// 5 - DocumentShared: Benachrichtigung über das Teilen eines Dokuments.
-/// 6 - TotpSecret: Benachrichtigung über ein TOTP-Geheimnis.
-/// 7 - DocumentRejected_ADM (Für den Absender): Mail an den Absender, wenn das Dokument abgelehnt wird.
-/// 8 - DocumentRejected_REC (Für den ablehnenden Empfänger): Mail an den ablehnenden Empfänger, wenn das Dokument abgelehnt wird.
-/// 9 - DocumentRejected_REC_2 (Für sonstige Empfänger): Mail an andere Empfänger (Brief), wenn das Dokument abgelehnt wird.
-///
public record ResetEmailTemplateCommand : EmailTemplateQuery, IRequest
{
///
@@ -34,7 +33,7 @@ public record ResetEmailTemplateCommand : EmailTemplateQuery, IRequest
///
///
/// Die optionale ID der E-Mail-Vorlage, die zurückgesetzt werden soll.
- /// Der Typ der E-Mail-Vorlage, z. B. (optional).
+ /// Der Typ der E-Mail-Vorlage, z. B. (optional).
public ResetEmailTemplateCommand(int? Id = null, Constants.EmailTemplateType? Type = null) : base(Id, Type)
{
}
diff --git a/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQueryHandler.cs b/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQueryHandler.cs
index 433838dc..84478ee1 100644
--- a/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQueryHandler.cs
+++ b/EnvelopeGenerator.Application/EmailTemplates/Queries/Read/ReadEmailTemplateQueryHandler.cs
@@ -12,6 +12,7 @@ public class ReadEmailTemplateQueryHandler : IRequestHandler instead.")]
private readonly IEmailTemplateRepository _repository;
///
@@ -21,6 +22,7 @@ public class ReadEmailTemplateQueryHandler : IRequestHandler
/// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird.
///
+ [Obsolete("Use Read-method returning IReadQuery instead.")]
public ReadEmailTemplateQueryHandler(IMapper mapper, IEmailTemplateRepository repository)
{
_mapper = mapper;
@@ -34,6 +36,7 @@ public class ReadEmailTemplateQueryHandler : IRequestHandler
///
///
+ [Obsolete("Use IRepository")]
public async Task Handle(ReadEmailTemplateQuery request, CancellationToken cancellationToken)
{
var temp = request.Id is int id
@@ -46,4 +49,4 @@ public class ReadEmailTemplateQueryHandler : IRequestHandler Receivers,
bool TFAEnabled = false
- ) : CreateEnvelopeCommand(Title, Message, TFAEnabled), IRequest;
\ No newline at end of file
+ ) : CreateEnvelopeCommand(Title, Message, TFAEnabled), IRequest;
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/EnvelopeReceivers/Commands/Create/CreateEnvelopeReceiverCommandHandler.cs b/EnvelopeGenerator.Application/EnvelopeReceivers/Commands/Create/CreateEnvelopeReceiverCommandHandler.cs
index 3ab6fda1..b4315258 100644
--- a/EnvelopeGenerator.Application/EnvelopeReceivers/Commands/Create/CreateEnvelopeReceiverCommandHandler.cs
+++ b/EnvelopeGenerator.Application/EnvelopeReceivers/Commands/Create/CreateEnvelopeReceiverCommandHandler.cs
@@ -64,4 +64,4 @@ public class CreateEnvelopeReceiverCommandHandler : IRequestHandler>(sentRecipients);
return res;
}
-}
+}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/Extensions/CacheExtensions.cs b/EnvelopeGenerator.Application/Extensions/CacheExtensions.cs
index 5e9eebd8..16a533c4 100644
--- a/EnvelopeGenerator.Application/Extensions/CacheExtensions.cs
+++ b/EnvelopeGenerator.Application/Extensions/CacheExtensions.cs
@@ -1,131 +1,222 @@
using Microsoft.Extensions.Caching.Distributed;
-namespace EnvelopeGenerator.Application.Extensions
+namespace EnvelopeGenerator.Application.Extensions;
+
+///
+///
+///
+public static class CacheExtensions
{
- public static class CacheExtensions
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static Task SetLongAsync(this IDistributedCache cache, string key, long value, DistributedCacheEntryOptions? options = null, CancellationToken cToken = default)
+ => options is null
+ ? cache.SetAsync(key, BitConverter.GetBytes(value), token: cToken)
+ : cache.SetAsync(key, BitConverter.GetBytes(value), options: options, token: cToken);
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task GetLongAsync(this IDistributedCache cache, string key, CancellationToken cToken = default)
{
- public static Task SetLongAsync(this IDistributedCache cache, string key, long value, DistributedCacheEntryOptions? options = null, CancellationToken cToken = default)
- => options is null
- ? cache.SetAsync(key, BitConverter.GetBytes(value), token: cToken)
- : cache.SetAsync(key, BitConverter.GetBytes(value), options: options, token: cToken);
-
- public static async Task GetLongAsync(this IDistributedCache cache, string key, CancellationToken cToken = default)
- {
- var value = await cache.GetAsync(key, cToken);
- return value is null ? null : BitConverter.ToInt64(value, 0);
- }
-
- public static Task SetDateTimeAsync(this IDistributedCache cache, string key, DateTime value, DistributedCacheEntryOptions? options = null, CancellationToken cToken = default)
- => cache.SetLongAsync(key: key, value: value.Ticks, options: options, cToken: cToken);
-
- public static async Task GetDateTimeAsync(this IDistributedCache cache, string key, CancellationToken cToken = default)
- {
- var value = await cache.GetAsync(key, cToken);
- return value is null ? null : new(BitConverter.ToInt64(value, 0));
- }
-
- public static Task SetTimeSpanAsync(this IDistributedCache cache, string key, TimeSpan value, DistributedCacheEntryOptions? options = null, CancellationToken cToken = default)
- => cache.SetLongAsync(key: key, value: value.Ticks, options: options, cToken);
-
- public static async Task GetTimeSpanAsync(this IDistributedCache cache, string key, CancellationToken cToken = default)
- {
- var value = await cache.GetAsync(key, cToken);
- return value is null ? null : new(BitConverter.ToInt64(value, 0));
- }
-
- //TODO: use code generator
- #region GetOrSetAsync
-
- #region string
- public static async Task GetOrSetAsync(this IDistributedCache cache, string key, Func factory, DistributedCacheEntryOptions? options = null, bool cacheInBackground = false, CancellationToken cToken = default)
- {
- var value = await cache.GetStringAsync(key, cToken);
- if (value is null)
- {
- // create new and save
- value = factory();
-
- Task CacheAsync() => options is null
- ? cache.SetStringAsync(key, value, cToken)
- : cache.SetStringAsync(key, value, options, cToken);
-
- if (cacheInBackground)
- _ = Task.Run(async () => await CacheAsync(), cToken);
- else
- await CacheAsync();
- }
-
- return value;
- }
-
- public static async Task GetOrSetAsync(this IDistributedCache cache, string key, Func> factoryAsync, DistributedCacheEntryOptions? options = null, bool cacheInBackground = false, CancellationToken cToken = default)
- {
- var value = await cache.GetStringAsync(key, cToken);
- if(value is null)
- {
- // create new and save
- value = await factoryAsync();
-
- Task CacheAsync() => options is null
- ? cache.SetStringAsync(key: key, value: value, token: cToken)
- : cache.SetStringAsync(key: key, value: value, options: options, token: cToken);
-
- if (cacheInBackground)
- _ = Task.Run(async () => await CacheAsync(), cToken);
- else
- await CacheAsync();
- }
-
- return value;
- }
- #endregion
-
- #region DateTime
- public static async Task GetOrSetAsync(this IDistributedCache cache, string key, Func factory, DistributedCacheEntryOptions? options = null, bool cacheInBackground = false, CancellationToken cToken = default)
- {
- if (await cache.GetDateTimeAsync(key, cToken) is DateTime dateTimeValue)
- return dateTimeValue;
- else
- {
- // create new and save
- var newValue = factory();
-
- Task CacheAsync() => options is null
- ? cache.SetDateTimeAsync(key, newValue, cToken: cToken)
- : cache.SetDateTimeAsync(key, newValue, options, cToken);
-
- if (cacheInBackground)
- _ = Task.Run(async () => await CacheAsync(), cToken);
- else
- await CacheAsync();
-
- return newValue;
- }
- }
-
- public static async Task GetOrSetAsync(this IDistributedCache cache, string key, Func> factory, DistributedCacheEntryOptions? options = null, bool cacheInBackground = false, CancellationToken cToken = default)
- {
- if (await cache.GetDateTimeAsync(key, cToken) is DateTime dateTimeValue)
- return dateTimeValue;
- else
- {
- // create new and save
- var newValue = await factory();
-
- Task CacheAsync() => options is null
- ? cache.SetDateTimeAsync(key, newValue, cToken: cToken)
- : cache.SetDateTimeAsync(key, newValue, options, cToken);
-
- if (cacheInBackground)
- _ = Task.Run(async () => await CacheAsync(), cToken);
- else
- await CacheAsync();
-
- return newValue;
- }
- }
- #endregion
-
- #endregion
+ var value = await cache.GetAsync(key, cToken);
+ return value is null ? null : BitConverter.ToInt64(value, 0);
}
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static Task SetDateTimeAsync(this IDistributedCache cache, string key, DateTime value, DistributedCacheEntryOptions? options = null, CancellationToken cToken = default)
+ => cache.SetLongAsync(key: key, value: value.Ticks, options: options, cToken: cToken);
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task GetDateTimeAsync(this IDistributedCache cache, string key, CancellationToken cToken = default)
+ {
+ var value = await cache.GetAsync(key, cToken);
+ return value is null ? null : new(BitConverter.ToInt64(value, 0));
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static Task SetTimeSpanAsync(this IDistributedCache cache, string key, TimeSpan value, DistributedCacheEntryOptions? options = null, CancellationToken cToken = default)
+ => cache.SetLongAsync(key: key, value: value.Ticks, options: options, cToken);
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task GetTimeSpanAsync(this IDistributedCache cache, string key, CancellationToken cToken = default)
+ {
+ var value = await cache.GetAsync(key, cToken);
+ return value is null ? null : new(BitConverter.ToInt64(value, 0));
+ }
+
+ //TODO: use code generator
+ #region GetOrSetAsync
+
+ #region string
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task GetOrSetAsync(this IDistributedCache cache, string key, Func factory, DistributedCacheEntryOptions? options = null, bool cacheInBackground = false, CancellationToken cToken = default)
+ {
+ var value = await cache.GetStringAsync(key, cToken);
+ if (value is null)
+ {
+ // create new and save
+ value = factory();
+
+ Task CacheAsync() => options is null
+ ? cache.SetStringAsync(key, value, cToken)
+ : cache.SetStringAsync(key, value, options, cToken);
+
+ if (cacheInBackground)
+ _ = Task.Run(async () => await CacheAsync(), cToken);
+ else
+ await CacheAsync();
+ }
+
+ return value;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task GetOrSetAsync(this IDistributedCache cache, string key, Func> factoryAsync, DistributedCacheEntryOptions? options = null, bool cacheInBackground = false, CancellationToken cToken = default)
+ {
+ var value = await cache.GetStringAsync(key, cToken);
+ if(value is null)
+ {
+ // create new and save
+ value = await factoryAsync();
+
+ Task CacheAsync() => options is null
+ ? cache.SetStringAsync(key: key, value: value, token: cToken)
+ : cache.SetStringAsync(key: key, value: value, options: options, token: cToken);
+
+ if (cacheInBackground)
+ _ = Task.Run(async () => await CacheAsync(), cToken);
+ else
+ await CacheAsync();
+ }
+
+ return value;
+ }
+ #endregion
+
+ #region DateTime
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task GetOrSetAsync(this IDistributedCache cache, string key, Func factory, DistributedCacheEntryOptions? options = null, bool cacheInBackground = false, CancellationToken cToken = default)
+ {
+ if (await cache.GetDateTimeAsync(key, cToken) is DateTime dateTimeValue)
+ return dateTimeValue;
+ else
+ {
+ // create new and save
+ var newValue = factory();
+
+ Task CacheAsync() => options is null
+ ? cache.SetDateTimeAsync(key, newValue, cToken: cToken)
+ : cache.SetDateTimeAsync(key, newValue, options, cToken);
+
+ if (cacheInBackground)
+ _ = Task.Run(async () => await CacheAsync(), cToken);
+ else
+ await CacheAsync();
+
+ return newValue;
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task GetOrSetAsync(this IDistributedCache cache, string key, Func> factory, DistributedCacheEntryOptions? options = null, bool cacheInBackground = false, CancellationToken cToken = default)
+ {
+ if (await cache.GetDateTimeAsync(key, cToken) is DateTime dateTimeValue)
+ return dateTimeValue;
+ else
+ {
+ // create new and save
+ var newValue = await factory();
+
+ Task CacheAsync() => options is null
+ ? cache.SetDateTimeAsync(key, newValue, cToken: cToken)
+ : cache.SetDateTimeAsync(key, newValue, options, cToken);
+
+ if (cacheInBackground)
+ _ = Task.Run(async () => await CacheAsync(), cToken);
+ else
+ await CacheAsync();
+
+ return newValue;
+ }
+ }
+ #endregion
+
+ #endregion
}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/Extensions/MappingExtensions.cs b/EnvelopeGenerator.Application/Extensions/MappingExtensions.cs
index 3a8a65f7..d2bde296 100644
--- a/EnvelopeGenerator.Application/Extensions/MappingExtensions.cs
+++ b/EnvelopeGenerator.Application/Extensions/MappingExtensions.cs
@@ -1,14 +1,27 @@
using EnvelopeGenerator.Application.DTOs.Messaging;
-namespace EnvelopeGenerator.Application.Extensions
-{
- public static class MappingExtensions
- {
- public static bool Ok(this GtxMessagingResponse gtxMessagingResponse)
- => gtxMessagingResponse.TryGetValue("message-status", out var status)
- && status?.ToString()?.ToLower() == "ok";
+namespace EnvelopeGenerator.Application.Extensions;
- public static string ToBase64String(this byte[] bytes)
- => Convert.ToBase64String(bytes);
- }
+///
+/// Provides extension methods for common mapping and conversion operations.
+///
+public static class MappingExtensions
+{
+ ///
+ /// Determines whether the response indicates a successful "OK" message status.
+ ///
+ /// The response object to evaluate.
+ /// if the response contains a "message-status" key with a value of "ok" (case-insensitive);
+ /// otherwise, .
+ public static bool Ok(this GtxMessagingResponse gtxMessagingResponse)
+ => gtxMessagingResponse.TryGetValue("message-status", out var status)
+ && status?.ToString()?.ToLower() == "ok";
+
+ ///
+ /// Converts the specified byte array to its equivalent string representation encoded in base-64.
+ ///
+ /// The byte array to encode.
+ /// A base-64 encoded string representation of the input byte array.
+ public static string ToBase64String(this byte[] bytes)
+ => Convert.ToBase64String(bytes);
}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryQueryHandler.cs b/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryQueryHandler.cs
index 95c650d5..91354492 100644
--- a/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryQueryHandler.cs
+++ b/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryQueryHandler.cs
@@ -10,6 +10,7 @@ namespace EnvelopeGenerator.Application.Histories.Queries.Read;
///
public class ReadHistoryQueryHandler : IRequestHandler>
{
+ [Obsolete("Use IRepository")]
private readonly IEnvelopeHistoryRepository _repository;
private readonly IMapper _mapper;
@@ -19,6 +20,7 @@ public class ReadHistoryQueryHandler : IRequestHandler
///
///
+ [Obsolete("Use IRepository")]
public ReadHistoryQueryHandler(IEnvelopeHistoryRepository repository, IMapper mapper)
{
_repository = repository;
@@ -41,4 +43,4 @@ public class ReadHistoryQueryHandler : IRequestHandler>(hists);
}
-}
+}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryResponse.cs b/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryResponse.cs
index 3c0cd725..7957839b 100644
--- a/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryResponse.cs
+++ b/EnvelopeGenerator.Application/Histories/Queries/Read/ReadHistoryResponse.cs
@@ -20,7 +20,7 @@ public class ReadHistoryResponse
///
/// Gets or sets the reference identifier of the user who performed the action.
///
- public string UserReference { get; set; }
+ public required string UserReference { get; set; }
///
/// Gets or sets the status code of the envelope.
diff --git a/EnvelopeGenerator.Application/Services/UserReceiverService.cs b/EnvelopeGenerator.Application/Services/UserReceiverService.cs
deleted file mode 100644
index d4dc7b0f..00000000
--- a/EnvelopeGenerator.Application/Services/UserReceiverService.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using AutoMapper;
-using DigitalData.Core.Application;
-using EnvelopeGenerator.Application.Contracts.Services;
-using EnvelopeGenerator.Application.DTOs;
-using EnvelopeGenerator.Domain.Entities;
-using EnvelopeGenerator.Application.Contracts.Repositories;
-
-namespace EnvelopeGenerator.Application.Services;
-
-///
-///
-///
-[Obsolete("Use MediatR")]
-public class UserReceiverService : BasicCRUDService, IUserReceiverService
-{
- ///
- ///
- ///
- ///
- ///
- public UserReceiverService(IUserReceiverRepository repository, IMapper mapper)
- : base(repository, mapper)
- {
- }
-}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Domain/Entities/Config.cs b/EnvelopeGenerator.Domain/Entities/Config.cs
index 65d4263a..fe011b68 100644
--- a/EnvelopeGenerator.Domain/Entities/Config.cs
+++ b/EnvelopeGenerator.Domain/Entities/Config.cs
@@ -6,14 +6,12 @@ namespace EnvelopeGenerator.Domain.Entities
[Table("TBSIG_CONFIG", Schema = "dbo")]
public class Config
{
- [Column("DOCUMENT_PATH", TypeName = "nvarchar(256)")]
- public string DocumentPath { get; set; }
-
[Column("SENDING_PROFILE", TypeName = "int")]
[Required]
public int SendingProfile { get; set; }
[Column("SIGNATURE_HOST", TypeName = "nvarchar(128)")]
+ [Required]
public string SignatureHost { get; set; }
[Column("EXTERNAL_PROGRAM_NAME", TypeName = "nvarchar(30)")]
diff --git a/EnvelopeGenerator.Domain/Entities/UserReceiver.cs b/EnvelopeGenerator.Domain/Entities/UserReceiver.cs
deleted file mode 100644
index 6260c3d5..00000000
--- a/EnvelopeGenerator.Domain/Entities/UserReceiver.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-#if NETFRAMEWORK
-using System;
-#endif
-
-namespace EnvelopeGenerator.Domain.Entities
-{
- [Table("TBSIG_USER_RECEIVER", Schema = "dbo")]
- public class UserReceiver
- {
- [Key]
- [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
- [Column("GUID")]
- public int Id { get; set; }
-
- [Required]
- [Column("USER_ID")]
- public int UserId { get; set; }
-
- [Required]
- [Column("RECEIVER_ID")]
- public int ReceiverId { get; set; }
-
- [Required]
- [Column("NAME", TypeName = "nvarchar(128)")]
- public string Name { get; set; }
-
- [Column("COMPANY_NAME", TypeName = "nvarchar(128)")]
- public string CompanyName { get; set; }
-
- [Column("JOB_TITLE", TypeName = "nvarchar(128)")]
- public string JobTitle { get; set; }
-
- [Required]
- [Column("ADDED_WHEN", TypeName = "datetime")]
- public DateTime AddedWhen { get; set; }
- }
-}
\ No newline at end of file
diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/AuthController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/AuthController.cs
index 812ddba9..1d7208b9 100644
--- a/EnvelopeGenerator.GeneratorAPI/Controllers/AuthController.cs
+++ b/EnvelopeGenerator.GeneratorAPI/Controllers/AuthController.cs
@@ -16,6 +16,7 @@ namespace EnvelopeGenerator.GeneratorAPI.Controllers;
public partial class AuthController : ControllerBase
{
private readonly ILogger _logger;
+ [Obsolete("Use MediatR")]
private readonly IUserService _userService;
private readonly IDirectorySearchService _dirSearchService;
@@ -25,6 +26,7 @@ public partial class AuthController : ControllerBase
/// The logger instance.
/// The user service instance.
/// The directory search service instance.
+ [Obsolete("Use MediatR")]
public AuthController(ILogger logger, IUserService userService, IDirectorySearchService dirSearchService)
{
_logger = logger;
diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/EmailTemplateController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/EmailTemplateController.cs
index 41927e85..bd1b47ab 100644
--- a/EnvelopeGenerator.GeneratorAPI/Controllers/EmailTemplateController.cs
+++ b/EnvelopeGenerator.GeneratorAPI/Controllers/EmailTemplateController.cs
@@ -27,6 +27,7 @@ public class EmailTemplateController : ControllerBase
private readonly IMapper _mapper;
+ [Obsolete("Use IRepository")]
private readonly IEmailTemplateRepository _repository;
private readonly IMediator _mediator;
@@ -38,6 +39,7 @@ public class EmailTemplateController : ControllerBase
///
/// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird.
///
+ [Obsolete("Use IRepository")]
public EmailTemplateController(IMapper mapper, IEmailTemplateRepository repository, ILogger logger, IMediator mediator)
{
_mapper = mapper;
@@ -115,4 +117,4 @@ public class EmailTemplateController : ControllerBase
return Ok();
}
}
-}
+}
\ No newline at end of file
diff --git a/EnvelopeGenerator.GeneratorAPI/Program.cs b/EnvelopeGenerator.GeneratorAPI/Program.cs
index 7cf0eaca..02390820 100644
--- a/EnvelopeGenerator.GeneratorAPI/Program.cs
+++ b/EnvelopeGenerator.GeneratorAPI/Program.cs
@@ -93,7 +93,7 @@ try
Id = "Bearer"
}
},
- new string[] {}
+ Array.Empty()
}
});
@@ -129,7 +129,7 @@ try
{
var clientParams = deferredProvider.GetOptions();
var publicKey = clientParams!.PublicKeys.Get(authTokenKeys.Issuer, authTokenKeys.Audience);
- return new List() { publicKey.SecurityKey };
+ return [publicKey.SecurityKey];
},
ValidateIssuer = true,
ValidIssuer = authTokenKeys.Issuer,
@@ -167,7 +167,9 @@ try
});
// User manager
+#pragma warning disable CS0618 // Type or member is obsolete
builder.Services.AddUserManager();
+#pragma warning restore CS0618 // Type or member is obsolete
// LDAP
builder.ConfigureBySection();
@@ -177,9 +179,11 @@ try
builder.Services.AddCookieBasedLocalizer();
// Envelope generator serives
+#pragma warning disable CS0618 // Type or member is obsolete
builder.Services
.AddEnvelopeGeneratorInfrastructureServices(sqlExecutorConfigureOptions: executor => executor.ConnectionString = connStr)
.AddEnvelopeGeneratorServices(config);
+#pragma warning restore CS0618 // Type or member is obsolete
var app = builder.Build();
@@ -201,10 +205,10 @@ try
app.UseCors("AllowSpecificOriginsPolicy");
// Localizer
- string[] supportedCultureNames = { "de-DE", "en-US" };
- IList list = supportedCultureNames.Select((string cn) => new CultureInfo(cn)).ToList();
- CultureInfo cultureInfo = list.FirstOrDefault() ?? throw new ArgumentNullException("supportedCultureNames", "Supported cultures cannot be empty.");
- RequestLocalizationOptions requestLocalizationOptions = new RequestLocalizationOptions
+ string[] supportedCultureNames = ["de-DE", "en-US"];
+ IList list = [.. supportedCultureNames.Select(cn => new CultureInfo(cn))];
+ var cultureInfo = list.FirstOrDefault() ?? throw new InvalidOperationException("There is no supported culture.");
+ var requestLocalizationOptions = new RequestLocalizationOptions
{
SupportedCultures = list,
SupportedUICultures = list
diff --git a/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs b/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs
index aabeafa6..272400fa 100644
--- a/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs
+++ b/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs
@@ -53,7 +53,6 @@ public static class DIExtensions
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
- services.TryAddScoped();
services.TryAddScoped();
services.AddDbRepository(context => context.Configs).UseAutoMapper();
@@ -67,7 +66,6 @@ public static class DIExtensions
services.AddDbRepository(context => context.EnvelopeReceivers).UseAutoMapper();
services.AddDbRepository(context => context.EnvelopeTypes).UseAutoMapper();
services.AddDbRepository(context => context.Receivers).UseAutoMapper();
- services.AddDbRepository(context => context.UserReceivers).UseAutoMapper();
services.AddDbRepository(context => context.EnvelopeReceiverReadOnlys).UseAutoMapper();
services.AddSQLExecutor();
diff --git a/EnvelopeGenerator.Infrastructure/EGDbContext.cs b/EnvelopeGenerator.Infrastructure/EGDbContext.cs
index 89bf900f..177143d4 100644
--- a/EnvelopeGenerator.Infrastructure/EGDbContext.cs
+++ b/EnvelopeGenerator.Infrastructure/EGDbContext.cs
@@ -17,8 +17,6 @@ namespace EnvelopeGenerator.Infrastructure;
//TODO: Adding EmailOut instead of EmailOut.Abst is not correct for the arch. Re-design EmailPut consedering this. IMailDbContext shoud move to Abstraction layer (hint: in this case using DBSet in abst. will be problem because entity framework will have to be added.
public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
{
- public DbSet UserReceivers { get; set; }
-
public DbSet Configs { get; set; }
public DbSet EnvelopeReceivers { get; set; }
@@ -68,7 +66,6 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
_triggers = triggerParamOptions.Value;
_logger = logger;
- UserReceivers = Set();
Configs = Set();
EnvelopeReceivers = Set();
Envelopes = Set();
@@ -106,7 +103,6 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
modelBuilder.Entity();
modelBuilder.Entity();
modelBuilder.Entity();
- modelBuilder.Entity();
modelBuilder.Entity();
// Configure the one-to-many relationship of Envelope
@@ -171,7 +167,6 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
AddTrigger();
AddTrigger();
AddTrigger();
- AddTrigger();
AddTrigger();
//configure model builder for user manager tables
diff --git a/EnvelopeGenerator.Infrastructure/Executor/EnvelopeExecutor.cs b/EnvelopeGenerator.Infrastructure/Executor/EnvelopeExecutor.cs
index c5147778..7b41ca79 100644
--- a/EnvelopeGenerator.Infrastructure/Executor/EnvelopeExecutor.cs
+++ b/EnvelopeGenerator.Infrastructure/Executor/EnvelopeExecutor.cs
@@ -12,13 +12,16 @@ namespace EnvelopeGenerator.Infrastructure.Executor;
public class EnvelopeExecutor : SQLExecutor, IEnvelopeExecutor
{
+ [Obsolete("Use IRepository")]
private readonly IUserRepository _userRepository;
+ [Obsolete("Use IRepository")]
public EnvelopeExecutor(IServiceProvider provider, IOptions sqlExecutorParamsOptions, IUserRepository userRepository) : base(provider, sqlExecutorParamsOptions)
{
_userRepository = userRepository;
}
+ [Obsolete("Use IRepository")]
public async Task CreateEnvelopeAsync(int userId, string title = "", string message = "", bool tfaEnabled = false, CancellationToken cancellation = default)
{
using var connection = new SqlConnection(Params.ConnectionString);
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
deleted file mode 100644
index 4b9f8f22..00000000
--- a/EnvelopeGenerator.Infrastructure/Repositories/UserReceiverRepository.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using DigitalData.Core.Infrastructure;
-using EnvelopeGenerator.Domain.Entities;
-using EnvelopeGenerator.Application.Contracts.Repositories;
-
-namespace EnvelopeGenerator.Infrastructure.Repositories;
-
-public class UserReceiverRepository : CRUDRepository, IUserReceiverRepository
-{
- public UserReceiverRepository(EGDbContext dbContext) : base(dbContext, dbContext.UserReceivers)
- {
- }
-}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Terminal/CommandManager.cs b/EnvelopeGenerator.Terminal/CommandManager.cs
index a593df00..c4fe43d7 100644
--- a/EnvelopeGenerator.Terminal/CommandManager.cs
+++ b/EnvelopeGenerator.Terminal/CommandManager.cs
@@ -13,9 +13,11 @@ public class CommandManager
{
WriteIndented = true
};
+ [Obsolete("Use MediatR")]
private readonly IEnvelopeReceiverService _envelopeReceiverService;
private readonly IMediator _mediator;
+ [Obsolete("Use MediatR")]
public CommandManager(IEnvelopeReceiverService envelopeReceiverService, IMediator mediator)
{
_envelopeReceiverService = envelopeReceiverService;
@@ -29,6 +31,7 @@ public class CommandManager
Console.WriteLine($"v{Assembly.GetExecutingAssembly().GetName().Version}");
}
+ [Obsolete("Use MediatR")]
[Subcommand]
public IEnvelopeReceiverService EnvelopeReceiver => _envelopeReceiverService;
@@ -55,4 +58,4 @@ public class CommandManager
File.WriteAllBytes(path, document?.ByteData ?? Array.Empty());
}
}
-}
+}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Terminal/DependencyInjection.cs b/EnvelopeGenerator.Terminal/DependencyInjection.cs
index 60561ac3..be1e535d 100644
--- a/EnvelopeGenerator.Terminal/DependencyInjection.cs
+++ b/EnvelopeGenerator.Terminal/DependencyInjection.cs
@@ -28,7 +28,7 @@ public static class DependencyInjection
});
// Add envelope generator services
- services.AddEnvelopeGeneratorInfrastructureServices(options => options.UseSqlServer(connStr));
+ services.AddEnvelopeGeneratorInfrastructureServices((provider, options) => options.UseSqlServer(connStr));
return services
.AddSingleton()
diff --git a/EnvelopeGenerator.Terminal/Program.cs b/EnvelopeGenerator.Terminal/Program.cs
index 09f61cbd..645f3dd0 100644
--- a/EnvelopeGenerator.Terminal/Program.cs
+++ b/EnvelopeGenerator.Terminal/Program.cs
@@ -15,7 +15,9 @@ public class Program
var config = builder.Configuration;
+#pragma warning disable CS0618 // Type or member is obsolete
builder.Services.AddCommandManagerRunner(config);
+#pragma warning restore CS0618 // Type or member is obsolete
var app = builder.Build();
diff --git a/EnvelopeGenerator.Web/Controllers/DocumentController.cs b/EnvelopeGenerator.Web/Controllers/DocumentController.cs
index 704559a2..52fb384c 100644
--- a/EnvelopeGenerator.Web/Controllers/DocumentController.cs
+++ b/EnvelopeGenerator.Web/Controllers/DocumentController.cs
@@ -26,6 +26,7 @@ public class DocumentController : BaseController
_envDocService = envDocService;
}
+ [Obsolete("Use MediatR")]
[NonAction]
public async Task Get([FromRoute] string envelopeKey, [FromQuery] int index)
{
@@ -53,6 +54,7 @@ public class DocumentController : BaseController
[Authorize(Roles = ReceiverRole.FullyAuth)]
[HttpPost("{envelopeKey}")]
+ [Obsolete("Use MediatR")]
public async Task Open(string envelopeKey)
{
try
diff --git a/EnvelopeGenerator.Web/Controllers/HomeController.cs b/EnvelopeGenerator.Web/Controllers/HomeController.cs
index 20ebf021..cf6a2446 100644
--- a/EnvelopeGenerator.Web/Controllers/HomeController.cs
+++ b/EnvelopeGenerator.Web/Controllers/HomeController.cs
@@ -171,6 +171,7 @@ public class HomeController : ViewControllerBase
}
}
+ [Obsolete("Use MediatR")]
private async Task CreateShowEnvelopeView(string envelopeReceiverId, EnvelopeReceiverDto er)
{
try
@@ -259,6 +260,7 @@ public class HomeController : ViewControllerBase
}
}
+ [Obsolete("Use MediatR")]
[NonAction]
private async Task HandleAccessCodeAsync(Auth auth, EnvelopeReceiverSecretDto er_secret, string envelopeReceiverId)
{
@@ -331,6 +333,7 @@ public class HomeController : ViewControllerBase
#endregion
[HttpPost("EnvelopeKey/{envelopeReceiverId}/Locked")]
+ [Obsolete("Use MediatR")]
public async Task LogInEnvelope([FromRoute] string envelopeReceiverId, [FromForm] Auth auth)
{
try
diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestConfigController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestConfigController.cs
index e9b27a37..10ccd4b2 100644
--- a/EnvelopeGenerator.Web/Controllers/Test/TestConfigController.cs
+++ b/EnvelopeGenerator.Web/Controllers/Test/TestConfigController.cs
@@ -3,13 +3,13 @@ using EnvelopeGenerator.Domain.Entities;
using DigitalData.Core.API;
using EnvelopeGenerator.Application.Contracts.Services;
-namespace EnvelopeGenerator.Web.Controllers.Test
-{
- public class TestConfigController : ReadControllerBase
- {
- public TestConfigController(ILogger logger, IConfigService service) : base(logger, service)
- {
+namespace EnvelopeGenerator.Web.Controllers.Test;
+
+[Obsolete("Use MediatR")]
+public class TestConfigController : ReadControllerBase
+{
+ public TestConfigController(ILogger logger, IConfigService service) : base(logger, service)
+ {
- }
}
}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestDocumentReceiverElementController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestDocumentReceiverElementController.cs
index 0dbe820d..0de8610d 100644
--- a/EnvelopeGenerator.Web/Controllers/Test/TestDocumentReceiverElementController.cs
+++ b/EnvelopeGenerator.Web/Controllers/Test/TestDocumentReceiverElementController.cs
@@ -4,6 +4,7 @@ using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Web.Controllers.Test;
+[Obsolete("Use MediatR")]
public class TestDocumentReceiverElementController : TestControllerBase
{
public TestDocumentReceiverElementController(ILogger logger, IDocumentReceiverElementService service) : base(logger, service)
diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs
index 24118798..4a5394d1 100644
--- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs
+++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs
@@ -4,53 +4,53 @@ using Microsoft.AspNetCore.Mvc;
using EnvelopeGenerator.Extensions;
using EnvelopeGenerator.Application.Contracts.Services;
-namespace EnvelopeGenerator.Web.Controllers.Test
+namespace EnvelopeGenerator.Web.Controllers.Test;
+
+[Obsolete("Use MediatR")]
+public class TestEnvelopeController : TestControllerBase
{
- public class TestEnvelopeController : TestControllerBase
+ public TestEnvelopeController(ILogger logger, IEnvelopeService service) : base(logger, service)
{
- public TestEnvelopeController(ILogger logger, IEnvelopeService service) : base(logger, service)
+ }
+
+ [NonAction]
+ public override Task GetAll() => base.GetAll();
+
+ [HttpGet]
+ public async Task GetAll([FromQuery] string? envelopeKey = default, [FromQuery] bool withDocuments = false, [FromQuery] bool withHistory = false, [FromQuery] bool withDocumentReceiverElement = false, [FromQuery] bool withUser = false, [FromQuery] bool withAll = true)
+ {
+ if (envelopeKey is not null)
{
+ (var uuid, var signature) = envelopeKey.DecodeEnvelopeReceiverId();
+ if (uuid is null)
+ return BadRequest("UUID is null");
+ var envlopeServiceResult = await _service.ReadByUuidAsync(
+ uuid: uuid,
+ withDocuments: withDocuments, withHistory: withHistory, withDocumentReceiverElement: withDocumentReceiverElement, withUser: withUser, withAll: withAll);
+
+ if (envlopeServiceResult.IsSuccess)
+ {
+ return Ok(envlopeServiceResult.Data);
+ }
+ return NotFound();
}
- [NonAction]
- public override Task GetAll() => base.GetAll();
-
- [HttpGet]
- public async Task GetAll([FromQuery] string? envelopeKey = default, [FromQuery] bool withDocuments = false, [FromQuery] bool withHistory = false, [FromQuery] bool withDocumentReceiverElement = false, [FromQuery] bool withUser = false, [FromQuery] bool withAll = true)
+ var result = await _service.ReadAllWithAsync(documents: withDocuments, history: withHistory);
+ if (result.IsSuccess)
{
- if(envelopeKey is not null)
- {
- (var uuid, var signature) = envelopeKey.DecodeEnvelopeReceiverId();
- if (uuid is null)
- return BadRequest("UUID is null");
- var envlopeServiceResult = await _service.ReadByUuidAsync(
- uuid: uuid,
- withDocuments: withDocuments, withHistory: withHistory, withDocumentReceiverElement:withDocumentReceiverElement, withUser:withUser, withAll:withAll);
-
- if (envlopeServiceResult.IsSuccess)
- {
- return Ok(envlopeServiceResult.Data);
- }
- return NotFound();
- }
-
- var result = await _service.ReadAllWithAsync(documents: withDocuments, history: withHistory);
- if (result.IsSuccess)
- {
- return Ok(result);
- }
- return NotFound(result);
+ return Ok(result);
}
+ return NotFound(result);
+ }
- [HttpGet("decode")]
- public IActionResult DecodeEnvelopeReceiverId(string envelopeReceiverId, int type = 0)
+ [HttpGet("decode")]
+ public IActionResult DecodeEnvelopeReceiverId(string envelopeReceiverId, int type = 0)
+ {
+ return type switch
{
- return type switch
- {
- 1 => Ok(envelopeReceiverId.GetEnvelopeUuid()),
- 2 => Ok(envelopeReceiverId.GetReceiverSignature()),
- _ => Ok(envelopeReceiverId.DecodeEnvelopeReceiverId()),
- };
- }
- }
+ 1 => Ok(envelopeReceiverId.GetEnvelopeUuid()),
+ 2 => Ok(envelopeReceiverId.GetReceiverSignature()),
+ _ => Ok(envelopeReceiverId.DecodeEnvelopeReceiverId()),
+ };
+ }
}
\ No newline at end of file
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
-{
- public class TestReceiverController : CRUDControllerBase
- {
- public TestReceiverController(ILogger logger, IReceiverService service) : base(logger, service)
- {
+namespace EnvelopeGenerator.Web.Controllers.Test;
+
+[Obsolete("Use MediatR")]
+public class TestReceiverController : CRUDControllerBase
+{
+ public TestReceiverController(ILogger logger, IReceiverService service) : base(logger, service)
+ {
- }
}
}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestSanitizeController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestSanitizeController.cs
index 5ea4e3be..43479724 100644
--- a/EnvelopeGenerator.Web/Controllers/Test/TestSanitizeController.cs
+++ b/EnvelopeGenerator.Web/Controllers/Test/TestSanitizeController.cs
@@ -2,36 +2,34 @@
using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;
-namespace EnvelopeGenerator.Web.Controllers.Test
+namespace EnvelopeGenerator.Web.Controllers.Test;
+
+[ApiController]
+[Route("api/test/[controller]")]
+public class TestSanitizeController : ControllerBase
{
- [ApiController]
- [Route("api/test/[controller]")]
- public class TestSanitizeController : ControllerBase
+ private readonly HtmlEncoder _htmlEncoder;
+ private readonly HtmlSanitizer _sanitizer;
+
+ public TestSanitizeController(HtmlEncoder htmlEncoder, HtmlSanitizer sanitizer)
{
- private readonly HtmlEncoder _htmlEncoder;
- private readonly HtmlSanitizer _sanitizer;
-
- public TestSanitizeController(HtmlEncoder htmlEncoder, HtmlSanitizer sanitizer)
- {
- _htmlEncoder = htmlEncoder;
- _sanitizer = sanitizer;
- }
-
- [HttpGet("sanitize")]
- public IActionResult Sanitize([FromQuery] string? input = null) => Ok(new
- {
- input,
- Sanitized = _sanitizer.Sanitize(input),
- SanitizedDocument = _sanitizer.SanitizeDocument(input),
- SanitizedDom = _sanitizer.SanitizeDom(input)
- });
-
-
- [HttpGet("encode")]
- public IActionResult Encoder([FromQuery] string? input = null) => Ok(new
- {
- input,
- Encoded = _htmlEncoder.Encode(input)
- });
+ _htmlEncoder = htmlEncoder;
+ _sanitizer = sanitizer;
}
-}
+
+ [HttpGet("sanitize")]
+ public IActionResult Sanitize([FromQuery] string input) => Ok(new
+ {
+ input,
+ Sanitized = _sanitizer.Sanitize(input),
+ SanitizedDocument = _sanitizer.SanitizeDocument(input),
+ SanitizedDom = _sanitizer.SanitizeDom(input)
+ });
+
+ [HttpGet("encode")]
+ public IActionResult Encoder([FromQuery] string input) => Ok(new
+ {
+ input,
+ Encoded = _htmlEncoder.Encode(input)
+ });
+}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs
deleted file mode 100644
index c4af2335..00000000
--- a/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using EnvelopeGenerator.Application.Contracts.Services;
-using EnvelopeGenerator.Application.DTOs;
-using EnvelopeGenerator.Domain.Entities;
-
-namespace EnvelopeGenerator.Web.Controllers.Test;
-
-[Obsolete("Use MediatR")]
-public class TestUserReceiverController : TestControllerBase< IUserReceiverService, UserReceiverDto, UserReceiver, int>
-{
- public TestUserReceiverController(ILogger logger, IUserReceiverService service) : base(logger, service)
- {
-
- }
-}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/Program.cs b/EnvelopeGenerator.Web/Program.cs
index 4ec51cf8..e6df2f8f 100644
--- a/EnvelopeGenerator.Web/Program.cs
+++ b/EnvelopeGenerator.Web/Program.cs
@@ -98,6 +98,7 @@ try
});
// Add envelope generator services
+#pragma warning disable CS0618 // Type or member is obsolete
builder.Services.AddEnvelopeGeneratorInfrastructureServices((provider, options) =>
{
var logger = provider.GetRequiredService>();
@@ -106,8 +107,11 @@ try
.EnableSensitiveDataLogging()
.EnableDetailedErrors();
});
+#pragma warning restore CS0618 // Type or member is obsolete
+#pragma warning disable CS0618 // Type or member is obsolete
builder.Services.AddEnvelopeGeneratorServices(config);
+#pragma warning restore CS0618 // Type or member is obsolete
builder.Services.Configure(options =>
{
@@ -174,7 +178,10 @@ try
builder.Services.AddSingleton(sp => sp.GetRequiredService>().Value);
// Register mail services
+#pragma warning disable CS0618 // Type or member is obsolete
builder.Services.AddScoped();
+#pragma warning restore CS0618 // Type or member is obsolete
+
builder.Services.AddDispatcher();
builder.Services.AddMemoryCache();
@@ -183,7 +190,9 @@ try
builder.ConfigureBySection();
+#pragma warning disable CS0618 // Type or member is obsolete
builder.Services.AddUserManager();
+#pragma warning restore CS0618 // Type or member is obsolete
var app = builder.Build();