From eb096cb2017895e1082c3d601fe13c3a4e95db54 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Fri, 3 May 2024 13:00:51 +0200 Subject: [PATCH] Refaktorisierung von HomeController, um die Verwendung von ThenAsync zu integrieren und Codelesbarkeit zu verbessern. --- .../DTOs/EnvelopeReceiverDto.cs | 4 +- .../Services/EnvelopeReceiverService.cs | 2 +- .../Controllers/ControllerBaseExtensions.cs | 8 + .../Controllers/HomeController.cs | 222 +++++++++--------- .../Controllers/Test/TestConfigController.cs | 2 +- .../Controllers/Test/TestControllerBase.cs | 7 +- .../TestDocumentReceiverElementController.cs | 2 +- .../Test/TestDocumentStatusController.cs | 2 +- .../Test/TestEmailTemplateController.cs | 2 +- .../Test/TestEnvelopeCertificateController.cs | 2 +- .../Test/TestEnvelopeController.cs | 2 +- .../Test/TestEnvelopeDocumentController.cs | 2 +- .../Test/TestEnvelopeHistoryController.cs | 2 +- .../Test/TestEnvelopeReceiverController.cs | 2 +- .../Test/TestEnvelopeTypeController.cs | 2 +- .../Test/TestReceiverController.cs | 2 +- .../Test/TestUserReceiverController.cs | 2 +- .../Controllers/Test/TestViewController.cs | 6 +- EnvelopeGenerator.Web/MessageKey.cs | 14 +- .../Views/Home/ShowEnvelope.cshtml | 22 +- 20 files changed, 155 insertions(+), 154 deletions(-) diff --git a/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverDto.cs b/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverDto.cs index 42de4e65..dfec3e94 100644 --- a/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverDto.cs +++ b/EnvelopeGenerator.Application/DTOs/EnvelopeReceiverDto.cs @@ -12,6 +12,6 @@ namespace EnvelopeGenerator.Application.DTOs string? PrivateMessage, DateTime AddedWhen, DateTime? ChangedWhen, - Envelope? Envelope, - Receiver? Receiver); + EnvelopeDto? Envelope, + ReceiverDto? Receiver); } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs b/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs index ca164e81..95d26ed7 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs @@ -99,7 +99,7 @@ namespace EnvelopeGenerator.Application.Services (string? uuid, string? signature) = envelopeReceiverId.DecodeEnvelopeReceiverId(); if (uuid is null || signature is null) - return Result.Fail(); + return Result.Fail().Notice(LogLevel.Warning, EnvelopeFlag.NonDecodableEnvelopeReceiverId, "In IsExisting(string envelopeReceiverId)"); int count = await _repository.CountAsync(uuid:uuid, signature:signature); return Result.Success(count > 0); diff --git a/EnvelopeGenerator.Web/Controllers/ControllerBaseExtensions.cs b/EnvelopeGenerator.Web/Controllers/ControllerBaseExtensions.cs index c6f5837f..d1c54793 100644 --- a/EnvelopeGenerator.Web/Controllers/ControllerBaseExtensions.cs +++ b/EnvelopeGenerator.Web/Controllers/ControllerBaseExtensions.cs @@ -40,6 +40,7 @@ namespace EnvelopeGenerator.Web.Controllers return null; } + //TODO: integrate localizer for ready-to-use views public static ViewResult ViewError(this Controller controller, ErrorViewModel errorViewModel) => controller.View("_Error", errorViewModel); public static ViewResult ViewError404(this Controller controller) => controller.ViewError(new ErrorViewModel() @@ -50,6 +51,13 @@ namespace EnvelopeGenerator.Web.Controllers }); public static ViewResult ViewEnvelopeNotFound(this Controller controller) => controller.ViewError(new ErrorViewModel() + { + Title = "404", + Subtitle = "Document not found", + Body = "Wenn Sie diese URL in Ihrer E-Mail erhalten haben, wenden Sie sich bitte an das IT-Team." + }); + + public static ViewResult ViewDocumentNotFound(this Controller controller) => controller.ViewError(new ErrorViewModel() { Title = "404", Subtitle = "Umschlag nicht gefunden", diff --git a/EnvelopeGenerator.Web/Controllers/HomeController.cs b/EnvelopeGenerator.Web/Controllers/HomeController.cs index c1c4802d..1d2c742c 100644 --- a/EnvelopeGenerator.Web/Controllers/HomeController.cs +++ b/EnvelopeGenerator.Web/Controllers/HomeController.cs @@ -12,6 +12,7 @@ using EnvelopeGenerator.Application; using Microsoft.Extensions.Localization; using DigitalData.Core.DTO; using EnvelopeGenerator.Application.Resources; +using EnvelopeGenerator.Application.DTOs; namespace EnvelopeGenerator.Web.Controllers { @@ -38,43 +39,34 @@ namespace EnvelopeGenerator.Web.Controllers ViewData["EnvelopeKey"] = envelopeReceiverId; try { - var erResult = await _envRcvService.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId: envelopeReceiverId); - var er = erResult.Data; - var receiver = er?.Receiver; - var envelope = er?.Envelope; - var mailAddress = receiver?.EmailAddress; + return await _envRcvService.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId: envelopeReceiverId).ThenAsync( + SuccessAsync: async er => + { + EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId); - if (erResult is null) - { - _logger.LogError(_localizer[MessageKey.ServiceOutputNullError.ToString()]); - return this.ViewEnvelopeNotFound(); - } - else if (erResult.IsSuccess && mailAddress is not null && (envelope?.UseAccessCode ?? false)) - { - EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId); + bool accessCodeAlreadyRequested = database.Models.receiverModel.AccessCodeAlreadyRequested(response.Receiver.Email, response.Envelope.Id); - bool accessCodeAlreadyRequested = database.Models.receiverModel.AccessCodeAlreadyRequested(response.Receiver.Email, response.Envelope.Id); - accessCodeAlreadyRequested = await _historyService.AccessCodeAlreadyRequested(envelopeId: envelope.Id, userReference: mailAddress); - if (!accessCodeAlreadyRequested) + accessCodeAlreadyRequested = await _historyService.AccessCodeAlreadyRequested(envelopeId: er.Envelope!.Id, userReference: er.Receiver!.EmailAddress); + if (!accessCodeAlreadyRequested) + { + // Send email with password + bool actionResult = database.Services.actionService.RequestAccessCode(response.Envelope, response.Receiver); + bool result = database.Services.emailService.SendDocumentAccessCodeReceivedEmail(response.Envelope, response.Receiver); + } + + return Redirect($"{envelopeReceiverId}/Locked"); + }, + Fail: (messages, notices) => { - // Send email with password - bool actionResult = database.Services.actionService.RequestAccessCode(response.Envelope, response.Receiver); - bool result = database.Services.emailService.SendDocumentAccessCodeReceivedEmail(response.Envelope, response.Receiver); - } - } - else - { - _logger.LogNotice(erResult); - return this.ViewEnvelopeNotFound(); - } + _logger.LogNotice(notices); + return this.ViewEnvelopeNotFound(); + }); } catch(Exception ex) { - _logger.LogEnvelopeError(envelopeEeceiverId: envelopeReceiverId, exception:ex, message: _localizer[MessageKey.UnexpectedError.ToString()]); + _logger.LogEnvelopeError(envelopeEeceiverId: envelopeReceiverId, exception:ex, message: _localizer[MessageKey.UnexpectedError]); return this.ViewInnerServiceError(); } - - return Redirect($"{envelopeReceiverId}/Locked"); } [HttpGet("EnvelopeKey/{envelopeReceiverId}/Locked")] @@ -82,13 +74,13 @@ namespace EnvelopeGenerator.Web.Controllers { try { - var result = await _envRcvService.IsExisting(envelopeReceiverId: envelopeReceiverId); - bool isExisting = result.Data; - - if (result.HasFlag(EnvelopeFlag.NonDecodableEnvelopeReceiverId) || !isExisting) - return this.ViewEnvelopeNotFound(); - - return View().WithData("EnvelopeKey", envelopeReceiverId); + return await _envRcvService.IsExisting(envelopeReceiverId: envelopeReceiverId).ThenAsync( + Success: isExisting => isExisting ? View().WithData("EnvelopeKey", envelopeReceiverId) : this.ViewEnvelopeNotFound(), + Fail: IActionResult (messages,notices) => + { + _logger.LogNotice(notices); + return this.ViewEnvelopeNotFound(); + }); } catch(Exception ex) { @@ -107,77 +99,77 @@ namespace EnvelopeGenerator.Web.Controllers if(uuid is null || signature is null) { _logger.LogEnvelopeError(uuid: uuid, signature: signature, message: _localizer[MessageKey.WrongEnvelopeReceiverId.ToString()]); - return BadRequest(_localizer[MessageKey.WrongEnvelopeReceiverId.ToString()]); + return BadRequest(_localizer[MessageKey.WrongEnvelopeReceiverId]); } _logger.LogInformation($"Envelope UUID: [{uuid}]\nReceiver Signature: [{signature}]"); - var verification = await _envRcvService.VerifyAccessCodeAsync(uuid: uuid, signature: signature, accessCode: access_code); - var isVerified = verification.Data; - - EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId); - - if (!verification.IsSuccess) - { - _logger.LogNotice(verification); - - if (verification.HasFlag(Flag.SecurityBreach)) - return Forbid(); - - return StatusCode(StatusCodes.Status500InternalServerError, string.Join(". ", verification.Messages).Append('.')); - } - else if (isVerified) - { - if (envelopeOldService.ReceiverAlreadySigned(response.Envelope, response.Receiver.Id)) - { - return View("EnvelopeSigned"); - } - - var envelope = await _envelopeService.ReadByUuidAsync(uuid: uuid, signature: signature, withAll: true); - - database.Services.actionService.EnterCorrectAccessCode(response.Envelope, response.Receiver); //for history - ViewData["EnvelopeKey"] = envelopeReceiverId; - ViewData["EnvelopeResponse"] = response; - - if (response.Envelope.Documents.Count() > 0) + return await _envRcvService.VerifyAccessCodeAsync(uuid: uuid, signature: signature, accessCode: access_code).ThenAsync( + SuccessAsync: async isVerified => { - var document = await envelopeOldService.GetDocument(response.Envelope.Documents[0].Id, envelopeReceiverId); - byte[] bytes = await envelopeOldService.GetDocumentContents(document); - ViewData["DocumentBytes"] = bytes; - } - else - ViewData["DocumentBytes"] = null; - - var claims = new List - { - new Claim(ClaimTypes.NameIdentifier, uuid), - new Claim(ClaimTypes.Hash, signature), - }; - - var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); - var authProperties = new AuthenticationProperties + EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId); + if (isVerified) + { + //todo: write using crud-service (mostlikely history-service) to make it async + if (envelopeOldService.ReceiverAlreadySigned(response.Envelope, response.Receiver.Id)) + { + return View("EnvelopeSigned"); + } + + database.Services.actionService.EnterCorrectAccessCode(response.Envelope, response.Receiver); //for history + ViewData["EnvelopeKey"] = envelopeReceiverId; + ViewData["EnvelopeResponse"] = response; + + return await _envRcvService.ReadByUuidSignatureAsync(uuid: uuid, signature: signature).ThenAsync( + SuccessAsync: async er => + { + if (response.Envelope.Documents.Count() > 0) + { + var document = await envelopeOldService.GetDocument(response.Envelope.Documents[0].Id, envelopeReceiverId); + byte[] bytes = await envelopeOldService.GetDocumentContents(document); + ViewData["DocumentBytes"] = bytes; + } + else + { + return this.ViewDocumentNotFound(); + } + + var claims = new List { new(ClaimTypes.NameIdentifier, uuid), new(ClaimTypes.Hash, signature) }; + + var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); + var authProperties = new AuthenticationProperties { }; + + await HttpContext.SignInAsync( + CookieAuthenticationDefaults.AuthenticationScheme, + new ClaimsPrincipal(claimsIdentity), + authProperties); + + return View("ShowEnvelope", er); + }, + Fail: (messages, notices) => + { + _logger.LogNotice(notices); + return this.ViewEnvelopeNotFound(); + } + ); + } + else + { + database.Services.actionService.EnterIncorrectAccessCode(response.Envelope, response.Receiver); //for history + return Unauthorized(); + + } + }, + Fail: (messages, notices) => { - }; - - await HttpContext.SignInAsync( - CookieAuthenticationDefaults.AuthenticationScheme, - new ClaimsPrincipal(claimsIdentity), - authProperties); - - return View("ShowEnvelope", envelope); - } - else - { - database.Services.actionService.EnterIncorrectAccessCode(response.Envelope, response.Receiver); //for history - _logger.LogWarning(string.Join("\n", verification.Messages)); - return Unauthorized(); - - } + _logger.LogNotice(notices); + return notices.HasFlag(Flag.SecurityBreach) ? Forbid() : StatusCode(StatusCodes.Status500InternalServerError, messages.Join()); + }); } catch(Exception ex) { - _logger.LogError(ex, MessageKey.UnexpectedError.ToString()); - return this.InnerServiceError(messageKey: MessageKey.UnexpectedError); + _logger.LogEnvelopeError(envelopeEeceiverId: envelopeReceiverId, exception: ex); + return this.InnerServiceError(message: _localizer[MessageKey.UnexpectedError]); } } @@ -186,21 +178,25 @@ namespace EnvelopeGenerator.Web.Controllers { try { - var result = await _envRcvService.IsExisting(envelopeReceiverId: envelopeReceiverId); - bool isExisting = result.Data; - if (result.HasFlag(EnvelopeFlag.NonDecodableEnvelopeReceiverId) || !isExisting) - return this.ViewEnvelopeNotFound(); - - EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId); - - if (!envelopeOldService.ReceiverAlreadySigned(response.Envelope, response.Receiver.Id)) - { - return Redirect($"/EnvelopeKey/{envelopeReceiverId}/Locked"); - } - - await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); - ViewData["EnvelopeKey"] = envelopeReceiverId; - return View(); + return await _envRcvService.IsExisting(envelopeReceiverId: envelopeReceiverId).ThenAsync( + SuccessAsync: async isExisting => + { + if(!isExisting) + return this.ViewEnvelopeNotFound(); + + EnvelopeResponse response = await envelopeOldService.LoadEnvelope(envelopeReceiverId); + if (!envelopeOldService.ReceiverAlreadySigned(response.Envelope, response.Receiver.Id)) + return Redirect($"/EnvelopeKey/{envelopeReceiverId}/Locked"); + + await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); + ViewData["EnvelopeKey"] = envelopeReceiverId; + return View(); + }, + Fail: IActionResult (messages, notices) => + { + _logger.LogNotice(notices); + return this.ViewEnvelopeNotFound(); + }); } catch (Exception ex) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestConfigController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestConfigController.cs index 7981dde9..8e0bb6cc 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestConfigController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestConfigController.cs @@ -6,7 +6,7 @@ using EnvelopeGenerator.Infrastructure.Contracts; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestConfigController : TestControllerBase + public class TestConfigController : TestControllerBase { public TestConfigController(ILogger logger, IConfigService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestControllerBase.cs b/EnvelopeGenerator.Web/Controllers/Test/TestControllerBase.cs index 814d53a8..f6b7a4f9 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestControllerBase.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestControllerBase.cs @@ -7,9 +7,12 @@ namespace EnvelopeGenerator.Web.Controllers.Test { [ApiController] [Route("api/test/[controller]")] - public class TestControllerBase : BasicCRUDControllerBase where TOriginalController : CRUDControllerBase where TCRUDService : ICRUDService where TCRUDRepository : ICRUDRepository where TDto : class where TEntity : class + public class TestControllerBase : BasicCRUDControllerBase + where TCRUDService : ICRUDService + where TCRUDRepository : ICRUDRepository + where TDto : class where TEntity : class { - public TestControllerBase(ILogger logger, TCRUDService service) : base(logger, service) + public TestControllerBase(ILogger logger, TCRUDService service) : base(logger, service) { } } diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestDocumentReceiverElementController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestDocumentReceiverElementController.cs index 29e3c74f..d0688da6 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestDocumentReceiverElementController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestDocumentReceiverElementController.cs @@ -6,7 +6,7 @@ using EnvelopeGenerator.Infrastructure.Contracts; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestDocumentReceiverElementController : TestControllerBase + public class TestDocumentReceiverElementController : TestControllerBase { public TestDocumentReceiverElementController(ILogger logger, IDocumentReceiverElementService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestDocumentStatusController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestDocumentStatusController.cs index a8ea37bb..cd939aaa 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestDocumentStatusController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestDocumentStatusController.cs @@ -6,7 +6,7 @@ using EnvelopeGenerator.Infrastructure.Contracts; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestDocumentStatusController : TestControllerBase + public class TestDocumentStatusController : TestControllerBase { public TestDocumentStatusController(ILogger logger, IDocumentStatusService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEmailTemplateController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEmailTemplateController.cs index 8bd7016b..e216f6b4 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEmailTemplateController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEmailTemplateController.cs @@ -5,7 +5,7 @@ using EnvelopeGenerator.Infrastructure.Contracts; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestEmailTemplateController : TestControllerBase + public class TestEmailTemplateController : TestControllerBase { public TestEmailTemplateController(ILogger logger, IEmailTemplateService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeCertificateController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeCertificateController.cs index b29981cc..1c06b1e4 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeCertificateController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeCertificateController.cs @@ -6,7 +6,7 @@ using EnvelopeGenerator.Infrastructure.Contracts; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestEnvelopeCertificateController : TestControllerBase + public class TestEnvelopeCertificateController : TestControllerBase { public TestEnvelopeCertificateController(ILogger logger, IEnvelopeCertificateService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs index 16785f38..0c0d337a 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeController.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Mvc; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestEnvelopeController : TestControllerBase + public class TestEnvelopeController : TestControllerBase { public TestEnvelopeController(ILogger logger, IEnvelopeService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeDocumentController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeDocumentController.cs index bfbafaef..b99a611c 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeDocumentController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeDocumentController.cs @@ -6,7 +6,7 @@ using EnvelopeGenerator.Infrastructure.Contracts; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestEnvelopeDocumentController : TestControllerBase + public class TestEnvelopeDocumentController : TestControllerBase { public TestEnvelopeDocumentController(ILogger logger, IEnvelopeDocumentService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeHistoryController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeHistoryController.cs index 0164c04e..8ecab4bd 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeHistoryController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeHistoryController.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Mvc; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestEnvelopeHistoryController : TestControllerBase + public class TestEnvelopeHistoryController : TestControllerBase { public TestEnvelopeHistoryController(ILogger logger, IEnvelopeHistoryService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs index d0af7c34..32f5e2ef 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs @@ -9,7 +9,7 @@ using Microsoft.AspNetCore.Mvc; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestEnvelopeReceiverController : TestControllerBase + public class TestEnvelopeReceiverController : TestControllerBase { public TestEnvelopeReceiverController(ILogger logger, IEnvelopeReceiverService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeTypeController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeTypeController.cs index 06815b29..70328f87 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeTypeController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeTypeController.cs @@ -6,7 +6,7 @@ using EnvelopeGenerator.Infrastructure.Contracts; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestEnvelopeTypeController : TestControllerBase + public class TestEnvelopeTypeController : TestControllerBase { public TestEnvelopeTypeController(ILogger logger, IEnvelopeTypeService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestReceiverController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestReceiverController.cs index 543d4ed5..10c19533 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestReceiverController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestReceiverController.cs @@ -6,7 +6,7 @@ using EnvelopeGenerator.Infrastructure.Contracts; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestReceiverController : TestControllerBase + public class TestReceiverController : TestControllerBase { public TestReceiverController(ILogger logger, IReceiverService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs index f8778b5e..d46ca284 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs @@ -6,7 +6,7 @@ using EnvelopeGenerator.Infrastructure.Contracts; namespace EnvelopeGenerator.Web.Controllers.Test { - public class TestUserReceiverController : TestControllerBase + public class TestUserReceiverController : TestControllerBase< IUserReceiverService, IUserReceiverRepository, UserReceiverDto, UserReceiver, int> { public TestUserReceiverController(ILogger logger, IUserReceiverService service) : base(logger, service) { diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs index 46bc0b36..a52db294 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs @@ -9,14 +9,10 @@ namespace EnvelopeGenerator.Web.Controllers.Test { private readonly EnvelopeOldService envelopeOldService; private readonly IConfiguration _config; - private readonly IEnvelopeReceiverService _envRcvService; - private readonly IEnvelopeService _envelopeService; - public TestViewController(DatabaseService databaseService, EnvelopeOldService envelopeOldService, ILogger logger, IConfiguration configuration, IEnvelopeReceiverService envelopeReceiverService, IEnvelopeService envelopeService) : base(databaseService, logger) + public TestViewController(DatabaseService databaseService, EnvelopeOldService envelopeOldService, ILogger logger, IConfiguration configuration) : base(databaseService, logger) { this.envelopeOldService = envelopeOldService; - _envRcvService = envelopeReceiverService; - _envelopeService = envelopeService; _config = configuration; } diff --git a/EnvelopeGenerator.Web/MessageKey.cs b/EnvelopeGenerator.Web/MessageKey.cs index a1b2f6de..b4f49475 100644 --- a/EnvelopeGenerator.Web/MessageKey.cs +++ b/EnvelopeGenerator.Web/MessageKey.cs @@ -1,12 +1,12 @@ namespace EnvelopeGenerator.Web { - public enum MessageKey + public static class MessageKey { - ServiceOutputNullError, - UnexpectedError, - FailedToSendAccessCode, - WrongEnvelopeReceiverId, //the value should be about URL (like URL is not existing) as a part of security. - DataIntegrityError, - NonDecodableEnvelopeReceiverId + public static readonly string ServiceOutputNullError = "ServiceOutputNullError"; + public static readonly string UnexpectedError = "UnexpectedError"; + public static readonly string FailedToSendAccessCode = "FailedToSendAccessCode"; + public static readonly string WrongEnvelopeReceiverId = "WrongEnvelopeReceiverId"; + public static readonly string DataIntegrityError = "DataIntegrityError"; + public static readonly string NonDecodableEnvelopeReceiverId = "NonDecodableEnvelopeReceiverId"; } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml b/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml index 83a73c9a..d25b4fb0 100644 --- a/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml +++ b/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml @@ -1,27 +1,26 @@ @using DigitalData.Core.DTO; @using EnvelopeGenerator.Application.DTOs; -@model DataResult; +@model EnvelopeReceiverDto; @{ ViewData["Title"] = "Dokument unterschreiben"; } -@if (Model.IsSuccess && Model.Data is not null) -{ - var envelope = Model.Data; - var document = envelope.Documents?.FirstOrDefault(); - var receiver = envelope.EnvelopeReceivers?.FirstOrDefault(); - var sender = envelope.User; +@{ + var envelope = Model.Envelope; + var document = Model.Envelope?.Documents?.FirstOrDefault(); + var receiver = Model.Envelope?.EnvelopeReceivers?.FirstOrDefault(); + var sender = Model.Envelope?.User; var receiverName = receiver?.Name ?? string.Empty; var pages = document?.Elements?.Select(e => e.Page) ?? Array.Empty(); var stPageIndexes = string.Join(pages.Count() > 1 ? ", " : "", pages.Take(pages.Count() - 1)) + (pages.Count() > 1 ? " und " : "") + pages.LastOrDefault(); - +}