diff --git a/EnvelopeGenerator.Web/Controllers/HomeController.cs b/EnvelopeGenerator.Web/Controllers/HomeController.cs index 8487bfcf..98c5b69a 100644 --- a/EnvelopeGenerator.Web/Controllers/HomeController.cs +++ b/EnvelopeGenerator.Web/Controllers/HomeController.cs @@ -18,9 +18,10 @@ using EnvelopeGenerator.Application.Resources; namespace EnvelopeGenerator.Web.Controllers { - public class HomeController : BaseController - { - private readonly EnvelopeOldService envelopeOldService; + public class HomeController : Controller + { + private readonly ILogger _logger; + private readonly EnvelopeOldService envelopeOldService; private readonly IEnvelopeReceiverService _envRcvService; private readonly IEnvelopeHistoryService _historyService; private readonly IStringLocalizer _localizer; @@ -28,7 +29,8 @@ namespace EnvelopeGenerator.Web.Controllers private readonly UrlEncoder _urlEncoder; private readonly Cultures _cultures; private readonly IEnvelopeMailService _mailService; - public HomeController(DatabaseService databaseService, EnvelopeOldService envelopeOldService, ILogger logger, IEnvelopeReceiverService envelopeReceiverService, IEnvelopeHistoryService historyService, IStringLocalizer localizer, IConfiguration configuration, UrlEncoder urlEncoder, Cultures cultures, IEnvelopeMailService envelopeMailService) : base(databaseService, logger) + + public HomeController(EnvelopeOldService envelopeOldService, ILogger logger, IEnvelopeReceiverService envelopeReceiverService, IEnvelopeHistoryService historyService, IStringLocalizer localizer, IConfiguration configuration, UrlEncoder urlEncoder, Cultures cultures, IEnvelopeMailService envelopeMailService) { this.envelopeOldService = envelopeOldService; _envRcvService = envelopeReceiverService; @@ -38,7 +40,7 @@ namespace EnvelopeGenerator.Web.Controllers _urlEncoder = urlEncoder; _cultures = cultures; _mailService = envelopeMailService; - + _logger = logger; } [HttpGet("EnvelopeKey/{envelopeReceiverId}")] @@ -143,24 +145,24 @@ namespace EnvelopeGenerator.Web.Controllers .WithData("UserLanguage", UserLanguage ?? _cultures.Default.Language) .WithData("ErrorMessage", _localizer[WebKey.WrongAccessCode].Value); } - else if (verification.IsWrong()) - { - database.Services.actionService.EnterIncorrectAccessCode(response.Envelope, response.Receiver); //for history - Response.StatusCode = StatusCodes.Status401Unauthorized; - return View("EnvelopeLocked") - .WithData("UserLanguage", UserLanguage ?? _cultures.Default.Language) - .WithData("ErrorMessage", _localizer[WebKey.WrongAccessCode].Value); - } - else - { - ViewData["EnvelopeKey"] = envelopeReceiverId; - } - //show envelope - database.Services.actionService.EnterCorrectAccessCode(response.Envelope, response.Receiver); //for history return await _envRcvService.ReadByUuidSignatureAsync(uuid: uuid, signature: signature).ThenAsync( SuccessAsync: async er => { + //check the access code verification + if (verification.IsWrong()) + { + //Constants.EnvelopeStatus.AccessCodeIncorrect + await _historyService.RecordAsync(er.EnvelopeId, er.Receiver!.EmailAddress, Constants.EnvelopeStatus.AccessCodeIncorrect); + Response.StatusCode = StatusCodes.Status401Unauthorized; + return View("EnvelopeLocked") + .WithData("UserLanguage", UserLanguage ?? _cultures.Default.Language) + .WithData("ErrorMessage", _localizer[WebKey.WrongAccessCode].Value); + } + + await _historyService.RecordAsync(er.EnvelopeId, er.Receiver!.EmailAddress, Constants.EnvelopeStatus.AccessCodeCorrect); + + ViewData["EnvelopeKey"] = envelopeReceiverId; //check rejection var rejRcvrs = await _historyService.ReadRejectingReceivers(er.Envelope!.Id); if(rejRcvrs.Any())