diff --git a/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverReadDto.cs b/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverReadDto.cs index 49654fea..6d1b5a19 100644 --- a/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverReadDto.cs +++ b/EnvelopeGenerator.Application/DTOs/Receiver/ReceiverReadDto.cs @@ -1,5 +1,6 @@ using DigitalData.Core.Abstractions; using DigitalData.Core.DTO; +using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; using System.Text.Json.Serialization; @@ -19,6 +20,7 @@ namespace EnvelopeGenerator.Application.DTOs.Receiver public string? TotpSecretkey { get; set; } = null; + [TemplatePlaceholder("[TFA_QR_EXPIRATION]")] public DateTime? TotpExpiration { get; set; } = null; }; } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs index 5e6ca13e..58a3c6b8 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs @@ -32,7 +32,7 @@ namespace EnvelopeGenerator.Application.Services _placeholders = mailConfig.Value.Placeholders; } - private async Task> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? envelopeReceiverDto = null, EnvelopeReceiverReadOnlyDto? readOnlyDto = null) + private async Task> CreatePlaceholders(string? accessCode = null, EnvelopeReceiverDto? envelopeReceiverDto = null) { if (accessCode is not null) _placeholders["[DOCUMENT_ACCESS_CODE]"] = accessCode; @@ -64,9 +64,9 @@ namespace EnvelopeGenerator.Application.Services return _placeholders; } - public async Task> SendAccessCodeAsync(EnvelopeReceiverDto dto) => await SendAsync(dto: dto, tempType: Constants.EmailTemplateType.DocumentAccessCodeReceived); + public async Task> SendAccessCodeAsync(EnvelopeReceiverDto dto) => await SendAsync(dto: dto, tempType: EmailTemplateType.DocumentAccessCodeReceived); - public async Task> SendAsync(EnvelopeReceiverDto dto, Constants.EmailTemplateType tempType) + public async Task> SendAsync(EnvelopeReceiverDto dto, EmailTemplateType tempType) { var tempSerResult = await _tempService.ReadByNameAsync(tempType); if (tempSerResult.IsFailed) @@ -111,7 +111,7 @@ namespace EnvelopeGenerator.Application.Services public async Task> SendAsync(EnvelopeReceiverReadOnlyDto dto) { - var tempSerResult = await _tempService.ReadByNameAsync(Constants.EmailTemplateType.DocumentShared); + var tempSerResult = await _tempService.ReadByNameAsync(EmailTemplateType.DocumentShared); if (tempSerResult.IsFailed) return tempSerResult.ToFail().Notice(LogLevel.Error, Flag.DataIntegrityIssue, $"The email cannot send because '{Constants.EmailTemplateType.DocumentShared}' template cannot found."); var temp = tempSerResult.Data; diff --git a/EnvelopeGenerator.Common/Constants.vb b/EnvelopeGenerator.Common/Constants.vb index d04f3bfd..d6c09439 100644 --- a/EnvelopeGenerator.Common/Constants.vb +++ b/EnvelopeGenerator.Common/Constants.vb @@ -99,6 +99,7 @@ DocumentCompleted DocumentAccessCodeReceived DocumentShared + TotpSecret End Enum Public Enum EncodeType diff --git a/EnvelopeGenerator.Web/Controllers/HomeController.cs b/EnvelopeGenerator.Web/Controllers/HomeController.cs index 89341ae3..d5ce93ac 100644 --- a/EnvelopeGenerator.Web/Controllers/HomeController.cs +++ b/EnvelopeGenerator.Web/Controllers/HomeController.cs @@ -239,7 +239,7 @@ namespace EnvelopeGenerator.Web.Controllers rcv.TotpExpiration = DateTime.Now.AddMonths(1); await _rcvService.UpdateAsync(rcv); var totp_qr_64 = _codeGenerator.GenerateTotpQrCode(userEmail: rcv.EmailAddress, secretKey: rcv.TotpSecretkey).ToBase64String(); - // send by email + await _mailService.SendAsync(er_secret, EmailTemplateType.TotpSecret); } return await TFAView(auth.UserSelectSMS); }