Refaktorisierung der Lokalisierung und DTO-Integration

- Ersetzung von ITranslateService durch IStringLocalizer<X> für verbesserte Lokalisierung.
- Aktualisierung der DTO-Klassen entsprechend der neuesten Core.DTO-Struktur.
- Integration der neuen Klassen Result und DataResult aus Core.DTO für standardisierte Serviceantworten.
This commit is contained in:
Developer 02
2024-05-02 17:36:23 +02:00
parent a7cf500858
commit cc01f57125
32 changed files with 571 additions and 149 deletions

View File

@@ -8,11 +8,10 @@ using Microsoft.AspNetCore.Mvc;
using System.Security.Claims;
using Microsoft.AspNetCore.Authorization;
using DigitalData.Core.API;
using DigitalData.Core.Application;
using EnvelopeGenerator.Application;
using DigitalData.Core.Contracts.CultureServices;
using DigitalData.Core.CultureServices;
using Azure;
using Microsoft.Extensions.Localization;
using DigitalData.Core.DTO;
using EnvelopeGenerator.Application.Resources;
namespace EnvelopeGenerator.Web.Controllers
{
@@ -22,15 +21,15 @@ namespace EnvelopeGenerator.Web.Controllers
private readonly IEnvelopeReceiverService _envRcvService;
private readonly IEnvelopeService _envelopeService;
private readonly IEnvelopeHistoryService _historyService;
private readonly IKeyTranslationService _translator;
private readonly IStringLocalizer<Resource> _localizer;
public HomeController(DatabaseService databaseService, EnvelopeOldService envelopeOldService, ILogger<HomeController> logger, IEnvelopeReceiverService envelopeReceiverService, IEnvelopeService envelopeService, IEnvelopeHistoryService historyService, IKeyTranslationService keyTranslationService) : base(databaseService, logger)
public HomeController(DatabaseService databaseService, EnvelopeOldService envelopeOldService, ILogger<HomeController> logger, IEnvelopeReceiverService envelopeReceiverService, IEnvelopeService envelopeService, IEnvelopeHistoryService historyService, IStringLocalizer<Resource> localizer) : base(databaseService, logger)
{
this.envelopeOldService = envelopeOldService;
_envRcvService = envelopeReceiverService;
_envelopeService = envelopeService;
_historyService = historyService;
_translator = keyTranslationService;
_localizer = localizer;
}
[HttpGet("/EnvelopeKey/{envelopeReceiverId}")]
@@ -47,7 +46,7 @@ namespace EnvelopeGenerator.Web.Controllers
if (erResult is null)
{
_logger.LogError(MessageKey.ServiceOutputNullError.TranslateWith(_translator));
_logger.LogError(_localizer[MessageKey.ServiceOutputNullError.ToString()]);
return this.ViewEnvelopeNotFound();
}
else if (erResult.IsSuccess && mailAddress is not null && (envelope?.UseAccessCode ?? false))
@@ -65,13 +64,13 @@ namespace EnvelopeGenerator.Web.Controllers
}
else
{
_logger.LogServiceMessage(erResult);
_logger.LogNotice(erResult);
return this.ViewEnvelopeNotFound();
}
}
catch(Exception ex)
{
_logger.LogEnvelopeError(envelopeEeceiverId: envelopeReceiverId, exception:ex, message: MessageKey.UnexpectedError.TranslateWith(_translator));
_logger.LogEnvelopeError(envelopeEeceiverId: envelopeReceiverId, exception:ex, message: _localizer[MessageKey.UnexpectedError.ToString()]);
return this.ViewInnerServiceError();
}
@@ -107,8 +106,8 @@ namespace EnvelopeGenerator.Web.Controllers
if(uuid is null || signature is null)
{
_logger.LogEnvelopeError(uuid: uuid, signature: signature, message: MessageKey.WrongEnvelopeReceiverId.TranslateWith(_translator));
return BadRequest(_envelopeService.CreateMessage(false, MessageKey.WrongEnvelopeReceiverId.ToString()));
_logger.LogEnvelopeError(uuid: uuid, signature: signature, message: _localizer[MessageKey.WrongEnvelopeReceiverId.ToString()]);
return BadRequest(_localizer[MessageKey.WrongEnvelopeReceiverId.ToString()]);
}
_logger.LogInformation($"Envelope UUID: [{uuid}]\nReceiver Signature: [{signature}]");
@@ -120,12 +119,12 @@ namespace EnvelopeGenerator.Web.Controllers
if (!verification.IsSuccess)
{
_logger.LogServiceMessage(verification);
_logger.LogNotice(verification);
if (verification.HasFlag(Flag.SecurityBreach))
return Forbid();
return StatusCode(StatusCodes.Status500InternalServerError, verification.ClientMessages.Join());
return StatusCode(StatusCodes.Status500InternalServerError, string.Join(". ", verification.Messages).Append('.'));
}
else if (isVerified)
{