diff --git a/src/WorkFlowCheck.BL/HtmlTemplates/AcceptCheckListHeaderBody.html b/src/WorkFlowCheck.BL/HtmlTemplates/AcceptCheckListHeaderBody.html
new file mode 100644
index 0000000..2e39e5d
--- /dev/null
+++ b/src/WorkFlowCheck.BL/HtmlTemplates/AcceptCheckListHeaderBody.html
@@ -0,0 +1,18 @@
+
+
+
+
+ Értesítés jóváhagyásról
+
+
+
+
+ A következő munkafolyamat jóvá lett hagyva:
+
+
+
+ #DocumentNumber#
+
+
+
+
\ No newline at end of file
diff --git a/src/WorkFlowCheck.BL/Services/CheckListService.cs b/src/WorkFlowCheck.BL/Services/CheckListService.cs
index ccb97f4..196aca2 100644
--- a/src/WorkFlowCheck.BL/Services/CheckListService.cs
+++ b/src/WorkFlowCheck.BL/Services/CheckListService.cs
@@ -114,6 +114,7 @@ namespace WorkFlowCheck.BL.Services
{
CheckListTemplateHeaderId = checkListHeaderDTO.CheckListTemplateHeaderDTO.Id,
Description = checkListHeaderDTO.Description,
+ ShortName = checkListHeaderDTO.ShortName,
GuidNumber = Guid.NewGuid(),
};
_dbContext.CheckListHeaders.Add(checkListHeader);
@@ -129,7 +130,7 @@ namespace WorkFlowCheck.BL.Services
if (checkListHeader != null)
{
checkListHeader.Description = checkListHeaderDTO.Description;
-
+ checkListHeader.ShortName= checkListHeaderDTO.ShortName;
await _dbContext.SaveChangesAsync();
retVal = _mapper.Map(checkListHeader);
@@ -239,17 +240,60 @@ namespace WorkFlowCheck.BL.Services
var filePath = Path.Combine(pdfDirectory, fileName);
await File.WriteAllBytesAsync(filePath, pdf);
+ await SendMailToAcceptedUser(filePath, checkListHeader, userid);
+
retVal = true;
}
}
}
catch (Exception ex)
{
-
+ retVal = false;
Log.Error(ex.Message);
}
return retVal;
}
+
+ private async Task SendMailToAcceptedUser(string filePath, CheckListHeader checkListHeader, int userId)
+ {
+ try
+ {
+ var user = _dbContext.Users.Where(W => W.Id == userId).FirstOrDefault();
+ if (user != null)
+ {
+ if (!string.IsNullOrEmpty(user.Email))
+ {
+ var recepients = new List()
+ {
+ user.Email,
+ };
+
+ await _messageService.SendMailAsync(recepients,
+ $"Értesítés folyamat jóváhagyásáról {checkListHeader.DocumentNumber}",
+ GetAcceptCheckListHeaderMessageBody(checkListHeader),
+ filePath);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+
+ }
+ }
+ private string GetAcceptCheckListHeaderMessageBody(CheckListHeader checkListHeader)
+ {
+ var assembly = Assembly.GetExecutingAssembly();
+ var resourceName = "WorkFlowCheck.BL.HtmlTemplates.AcceptCheckListHeaderBody.html";
+
+ using var stream = assembly.GetManifestResourceStream(resourceName);
+ if (stream == null)
+ throw new FileNotFoundException($"Nem található a beágyazott erőforrás: {resourceName}");
+
+ using var reader = new StreamReader(stream);
+ var html = reader.ReadToEnd();
+ return html.Replace("#DocumentNumber#", checkListHeader.DocumentNumber);
+ }
public async Task CreateCheckListHeaderPDFAsync(int checkListHeaderId)
{
try
diff --git a/src/WorkFlowCheck.BL/Services/Interfaces/IMessageService.cs b/src/WorkFlowCheck.BL/Services/Interfaces/IMessageService.cs
index aa4d5cf..057692b 100644
--- a/src/WorkFlowCheck.BL/Services/Interfaces/IMessageService.cs
+++ b/src/WorkFlowCheck.BL/Services/Interfaces/IMessageService.cs
@@ -9,7 +9,7 @@ namespace WorkFlowCheck.BL.Services.Interfaces
{
public interface IMessageService
{
- Task SendMailAsync(List recipients, string subject, string htmlBody);
+ Task SendMailAsync(List recipients, string subject, string htmlBody, string? attachmentFilePath = null);
Task SendFCMTokenAsync(string token);
Task GetLastFCMTokensAsync();
diff --git a/src/WorkFlowCheck.BL/Services/MessageService.cs b/src/WorkFlowCheck.BL/Services/MessageService.cs
index cb9ed60..16d67e7 100644
--- a/src/WorkFlowCheck.BL/Services/MessageService.cs
+++ b/src/WorkFlowCheck.BL/Services/MessageService.cs
@@ -28,7 +28,7 @@ namespace WorkFlowCheck.BL.Services
_settings = configuration.GetSection("EmailSettings").Get()!;
}
- public async Task SendMailAsync(List recipients, string subject, string htmlBody)
+ public async Task SendMailAsync(List recipients, string subject, string htmlBody, string? attachmentFilePath = null)
{
var message = new MimeMessage();
message.From.Add(new MailboxAddress(_settings.SenderName, _settings.Username));
@@ -40,11 +40,17 @@ namespace WorkFlowCheck.BL.Services
message.Subject = subject;
- message.Body = new TextPart("html")
+ var builder = new BodyBuilder
{
- Text = htmlBody
+ HtmlBody = htmlBody
};
+ if (!string.IsNullOrEmpty(attachmentFilePath) && File.Exists(attachmentFilePath))
+ {
+ builder.Attachments.Add(attachmentFilePath);
+ }
+
+ message.Body = builder.ToMessageBody();
using var smtp = new SmtpClient();
await smtp.ConnectAsync(_settings.SmtpServer, _settings.SmtpPort, SecureSocketOptions.StartTls);
await smtp.AuthenticateAsync(_settings.Username, _settings.Password);
diff --git a/src/WorkFlowCheck.BL/WorkFlowCheck.BL.csproj b/src/WorkFlowCheck.BL/WorkFlowCheck.BL.csproj
index 72db9dd..7234e8d 100644
--- a/src/WorkFlowCheck.BL/WorkFlowCheck.BL.csproj
+++ b/src/WorkFlowCheck.BL/WorkFlowCheck.BL.csproj
@@ -11,6 +11,7 @@
+
diff --git a/src/WorkFlowCheck.Web/Pages/CheckList/CheckListHeader/CheckListHeaderEditPage.cshtml b/src/WorkFlowCheck.Web/Pages/CheckList/CheckListHeader/CheckListHeaderEditPage.cshtml
index 22a75b2..11fcec0 100644
--- a/src/WorkFlowCheck.Web/Pages/CheckList/CheckListHeader/CheckListHeaderEditPage.cshtml
+++ b/src/WorkFlowCheck.Web/Pages/CheckList/CheckListHeader/CheckListHeaderEditPage.cshtml
@@ -34,10 +34,17 @@