From 7ff81c6bbdc31a5313c05c73bbd74e83e3bc13fc Mon Sep 17 00:00:00 2001 From: Oleg Shabunov Date: Sat, 20 Apr 2024 19:02:55 +0400 Subject: [PATCH] MailWorker Singleton fix --- .../BusinessLogics/ClientLogic.cs | 4 ++-- .../BusinessLogics/OrderLogic.cs | 17 ++++++++--------- .../MailWorker/AbstractMailWorker.cs | 2 +- .../MailWorker/MailKitWorker.cs | 8 +------- AutoWorkshopClientApp/Views/Home/Mails.cshtml | 6 +++--- AutoWorkshopRestApi/Program.cs | 2 +- AutoWorkshopRestApi/appsettings.json | 6 +++--- AutoWorkshopView/App.config | 4 ++-- AutoWorkshopView/Forms/FormMail.Designer.cs | 4 ++-- AutoWorkshopView/Program.cs | 2 +- 10 files changed, 24 insertions(+), 31 deletions(-) diff --git a/AutoWorkshopBusinessLogic/BusinessLogics/ClientLogic.cs b/AutoWorkshopBusinessLogic/BusinessLogics/ClientLogic.cs index ace2432..676c258 100644 --- a/AutoWorkshopBusinessLogic/BusinessLogics/ClientLogic.cs +++ b/AutoWorkshopBusinessLogic/BusinessLogics/ClientLogic.cs @@ -102,10 +102,10 @@ namespace AutoWorkshopBusinessLogic.BusinessLogics throw new ArgumentNullException("Нет ФИО клиента", nameof(Model.ClientFIO)); if (string.IsNullOrEmpty(Model.Email) || !Regex.IsMatch(Model.Email, @"^[a-z0-9._%+-]+\@([a-z0-9-]+\.)+[a-z]{2,4}$")) - throw new ArgumentNullException("Почта не соответствует требованиям", nameof(Model.Email)); + throw new ArgumentException("Почта не соответствует требованиям", nameof(Model.Email)); if (string.IsNullOrEmpty(Model.Password) || !Regex.IsMatch(Model.Password, @"^(?=.*[A-Za-z])(?=.*\d)(?=.*[^A-Za-z0-9\n]).{10,50}$")) - throw new ArgumentNullException("Пароль не соответствует требованиям", nameof(Model.Password)); + throw new ArgumentException("Пароль не соответствует требованиям", nameof(Model.Password)); _logger.LogInformation("Client. ClientFIO: {ClientFIO}." + "Email: {Email}. Password: {Password}. Id: {Id} ", Model.ClientFIO, Model.Email, Model.Password, Model.Id); diff --git a/AutoWorkshopBusinessLogic/BusinessLogics/OrderLogic.cs b/AutoWorkshopBusinessLogic/BusinessLogics/OrderLogic.cs index 31264cf..0e39bf2 100644 --- a/AutoWorkshopBusinessLogic/BusinessLogics/OrderLogic.cs +++ b/AutoWorkshopBusinessLogic/BusinessLogics/OrderLogic.cs @@ -61,12 +61,12 @@ namespace AutoWorkshopBusinessLogic.BusinessLogics return false; } - Task.Run(() => _mailLogic.SendMailAsync(new MailSendInfoBindingModel - { - MailAddress = CreatedOrder.ClientEmail, - Subject = $"Изменение статуса заказа номер {CreatedOrder.Id}", - Text = $"Ваш заказ номер {CreatedOrder.Id} на ремонт {CreatedOrder.RepairName} от {CreatedOrder.DateCreate} на сумму {CreatedOrder.Sum} принят." - })); + Task.Run(() => _mailLogic.SendMailAsync(new MailSendInfoBindingModel + { + MailAddress = CreatedOrder.ClientEmail, + Subject = $"Изменение статуса заказа номер {CreatedOrder.Id}", + Text = $"Ваш заказ номер {CreatedOrder.Id} на ремонт {CreatedOrder.RepairName} от {CreatedOrder.DateCreate} на сумму {CreatedOrder.Sum} принят." + })); return true; } @@ -107,13 +107,12 @@ namespace AutoWorkshopBusinessLogic.BusinessLogics return false; } - // TODO: check order ClientEmail - string DateInfo = Model.DateImplement.HasValue ? $"Дата выполнения {Model.DateImplement}" : ""; + string DateInfo = Model.DateImplement.HasValue ? $"Дата выполнения: {Model.DateImplement}" : ""; Task.Run(() => _mailLogic.SendMailAsync(new MailSendInfoBindingModel { MailAddress = Order.ClientEmail, Subject = $"Изменение статуса заказа номер {Order.Id}", - Text = $"Ваш заказ номер {Order.Id} на ремонт {Order.RepairName} от {Order.DateCreate} на сумму {Order.Sum} {Order.Status}. {DateInfo}" + Text = $"Ваш заказ номер {Order.Id} на ремонт {Order.RepairName} от {Order.DateCreate} на сумму {Order.Sum}. Статус изменен на {NewStatus}. {DateInfo}" })); return true; diff --git a/AutoWorkshopBusinessLogic/MailWorker/AbstractMailWorker.cs b/AutoWorkshopBusinessLogic/MailWorker/AbstractMailWorker.cs index a1c4491..8614d4d 100644 --- a/AutoWorkshopBusinessLogic/MailWorker/AbstractMailWorker.cs +++ b/AutoWorkshopBusinessLogic/MailWorker/AbstractMailWorker.cs @@ -37,7 +37,7 @@ namespace AutoWorkshopBusinessLogic.MailWorker _popHost = Config.PopHost; _popPort = Config.PopPort; - _logger.LogDebug("MailConfig: {Login}, {Password}, {ClientHost},\r\n{ClientPort}, {PopHost}, {PopPort}", + _logger.LogDebug("MailConfig: {Login}, {Password}, {ClientHost}, {ClientPort}, {PopHost}, {PopPort}", _mailLogin, _mailPassword, _smtpClientHost, _smtpClientPort, _popHost, _popPort); } diff --git a/AutoWorkshopBusinessLogic/MailWorker/MailKitWorker.cs b/AutoWorkshopBusinessLogic/MailWorker/MailKitWorker.cs index 9bdb1af..338fdca 100644 --- a/AutoWorkshopBusinessLogic/MailWorker/MailKitWorker.cs +++ b/AutoWorkshopBusinessLogic/MailWorker/MailKitWorker.cs @@ -1,21 +1,15 @@ using AutoWorkshopContracts.BindingModels; using AutoWorkshopContracts.BusinessLogicContracts; -using DocumentFormat.OpenXml.EMMA; -using DocumentFormat.OpenXml.Spreadsheet; using MailKit.Net.Pop3; using MailKit.Security; using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; using System.Net; using System.Net.Mail; using System.Text; -using System.Threading.Tasks; namespace AutoWorkshopBusinessLogic.MailWorker { - public class MailKitWorker : AbstractMailWorker + public class MailKitWorker : AbstractMailWorker { public MailKitWorker(ILogger Logger, IMessageInfoLogic MessageInfoLogic) : base(Logger, MessageInfoLogic) { } diff --git a/AutoWorkshopClientApp/Views/Home/Mails.cshtml b/AutoWorkshopClientApp/Views/Home/Mails.cshtml index ab4764e..6add54f 100644 --- a/AutoWorkshopClientApp/Views/Home/Mails.cshtml +++ b/AutoWorkshopClientApp/Views/Home/Mails.cshtml @@ -35,13 +35,13 @@ { - @Html.DisplayFor(modelItem => Item.DateDelivery) + @Html.DisplayFor(ModelItem => Item.DateDelivery) - @Html.DisplayFor(modelItem => Item.Subject) + @Html.DisplayFor(ModelItem => Item.Subject) - @Html.DisplayFor(modelItem => Item.Body) + @Html.DisplayFor(ModelItem => Item.Body) } diff --git a/AutoWorkshopRestApi/Program.cs b/AutoWorkshopRestApi/Program.cs index 20a0587..177d271 100644 --- a/AutoWorkshopRestApi/Program.cs +++ b/AutoWorkshopRestApi/Program.cs @@ -24,7 +24,7 @@ Builder.Services.AddTransient(); Builder.Services.AddTransient(); Builder.Services.AddTransient(); -Builder.Services.AddTransient(); +Builder.Services.AddSingleton(); Builder.Services.AddControllers(); diff --git a/AutoWorkshopRestApi/appsettings.json b/AutoWorkshopRestApi/appsettings.json index ec2ee9a..e2ba257 100644 --- a/AutoWorkshopRestApi/appsettings.json +++ b/AutoWorkshopRestApi/appsettings.json @@ -6,11 +6,11 @@ } }, "AllowedHosts": "*", - + "SmtpClientHost": "smtp.gmail.com", "SmtpClientPort": "587", "PopHost": "pop.gmail.com", "PopPort": "995", - "MailLogin": "pasxalko1488ventilyator@gmail.com", - "MailPassword": "MsCutiePatootie" + "MailLogin": "testingpurposeslab7@gmail.com", + "MailPassword": "gvdg ovtu lmis djwq" } diff --git a/AutoWorkshopView/App.config b/AutoWorkshopView/App.config index cbd42ca..12ffdeb 100644 --- a/AutoWorkshopView/App.config +++ b/AutoWorkshopView/App.config @@ -5,7 +5,7 @@ - - + + \ No newline at end of file diff --git a/AutoWorkshopView/Forms/FormMail.Designer.cs b/AutoWorkshopView/Forms/FormMail.Designer.cs index 3857bf9..0f313eb 100644 --- a/AutoWorkshopView/Forms/FormMail.Designer.cs +++ b/AutoWorkshopView/Forms/FormMail.Designer.cs @@ -44,14 +44,14 @@ DataGridView.ReadOnly = true; DataGridView.RowHeadersWidth = 51; DataGridView.RowTemplate.Height = 29; - DataGridView.Size = new Size(688, 202); + DataGridView.Size = new Size(1084, 456); DataGridView.TabIndex = 0; // // FormMail // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(688, 202); + ClientSize = new Size(1084, 456); Controls.Add(DataGridView); Margin = new Padding(3, 2, 3, 2); Name = "FormMail"; diff --git a/AutoWorkshopView/Program.cs b/AutoWorkshopView/Program.cs index b6d2732..e413985 100644 --- a/AutoWorkshopView/Program.cs +++ b/AutoWorkshopView/Program.cs @@ -37,7 +37,7 @@ namespace AutoWorkshopView MailLogin = System.Configuration.ConfigurationManager.AppSettings["MailLogin"] ?? string.Empty, MailPassword = System.Configuration.ConfigurationManager.AppSettings["MailPassword"] ?? string.Empty, SmtpClientHost = System.Configuration.ConfigurationManager.AppSettings["SmtpClientHost"] ?? string.Empty, - SmtpClientPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SmtpClient Port"]), + SmtpClientPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SmtpClientPort"]), PopHost = System.Configuration.ConfigurationManager.AppSettings["PopHost"] ?? string.Empty, PopPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["PopPort"]) });