From 4026ebae5f2f534cf83a479a314af303736d4466 Mon Sep 17 00:00:00 2001 From: "jozsef.b@aycode.com" <9Rj@D}fVwBaN> Date: Sat, 27 Apr 2024 19:08:58 +0200 Subject: [PATCH] Refactoring EmailMessage, EmailRecipient, MessageSenderService, etc... --- .../{DatabaseTest.cs => DatabaseTestBase.cs} | 2 +- TIAM.Database/TIAM.Database.csproj | 6 ---- TIAM.Entities/Emails/EmailMessage.cs | 34 ++----------------- TIAM.Entities/Emails/EmailRecipient.cs | 23 +++---------- TIAM.Entities/Emails/IEmailMessage.cs | 8 +++++ TIAM.Entities/Emails/IEmailMessageBase.cs | 8 +++++ TIAM.Entities/Emails/IEmailRecipient.cs | 8 +++++ TIAM.Entities/Emails/IEmailRecipientBase.cs | 8 +++++ TIAM.Entities/Emails/IMessageSenderService.cs | 7 ++++ TIAMWebApp/Client/Services/WizardProcessor.cs | 1 - .../Controllers/MessageAPIController.cs | 1 - TIAMWebApp/Server/Program.cs | 1 - .../Server/Services/MessageSenderService.cs | 25 ++++---------- .../Interfaces/IClientNoticeSenderService.cs | 3 +- .../ClientSide/Messages/MessageSenderModel.cs | 3 +- 15 files changed, 55 insertions(+), 83 deletions(-) rename TIAM.Database.Test/{DatabaseTest.cs => DatabaseTestBase.cs} (85%) create mode 100644 TIAM.Entities/Emails/IEmailMessage.cs create mode 100644 TIAM.Entities/Emails/IEmailMessageBase.cs create mode 100644 TIAM.Entities/Emails/IEmailRecipient.cs create mode 100644 TIAM.Entities/Emails/IEmailRecipientBase.cs create mode 100644 TIAM.Entities/Emails/IMessageSenderService.cs diff --git a/TIAM.Database.Test/DatabaseTest.cs b/TIAM.Database.Test/DatabaseTestBase.cs similarity index 85% rename from TIAM.Database.Test/DatabaseTest.cs rename to TIAM.Database.Test/DatabaseTestBase.cs index 6e4975e2..e73e9bb9 100644 --- a/TIAM.Database.Test/DatabaseTest.cs +++ b/TIAM.Database.Test/DatabaseTestBase.cs @@ -7,7 +7,7 @@ using TIAM.Database.DbContexts.Users; namespace TIAM.Database.Test { [TestClass] - public class DatabaseTest : AcDatabaseTestBase + public class DatabaseTestBase : AcDatabaseTestBase { [TestInitialize] public void Setup() diff --git a/TIAM.Database/TIAM.Database.csproj b/TIAM.Database/TIAM.Database.csproj index 7388da77..bbccf781 100644 --- a/TIAM.Database/TIAM.Database.csproj +++ b/TIAM.Database/TIAM.Database.csproj @@ -59,12 +59,6 @@ ..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll - - ..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll - - - ..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.Server.dll - ..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll diff --git a/TIAM.Entities/Emails/EmailMessage.cs b/TIAM.Entities/Emails/EmailMessage.cs index 35aa73b1..ca412f34 100644 --- a/TIAM.Entities/Emails/EmailMessage.cs +++ b/TIAM.Entities/Emails/EmailMessage.cs @@ -1,49 +1,21 @@ using System.Collections.Specialized; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using AyCode.Entities.Messages; using AyCode.Interfaces.Entities; using AyCode.Interfaces.TimeStampInfo; using AyCode.Interfaces.Users; namespace TIAM.Entities.Emails; -public interface IMessageSenderService -{ - public Task SendMessageAsync(TEmailMessage message, int messageType) where TEmailMessage : EmailMessage; -} - - [Table(nameof(EmailMessage))] -public class EmailMessage : IEntityGuid, ITimeStampInfo, IEmailRecipientsRelation, IEmailAddress +public class EmailMessage : AcEmailMessage //IEntityGuid, ITimeStampInfo, IEmailRecipientsRelation, IEmailAddress { public EmailMessage() { } - public EmailMessage(Guid id, Guid? senderId, Guid contextId, string subject, string? text, string emailAddress) : this() + public EmailMessage(Guid id, Guid? senderId, Guid contextId, string subject, string? text, string emailAddress) : base(id, senderId, contextId, subject, text, emailAddress) { - Id = id; - SenderId = senderId; - ContextId = contextId; - Subject = subject; - Text = text; - EmailAddress = emailAddress; } - - [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] - public Guid Id { get; set; } - - public Guid ContextId { get; set; } - public Guid? SenderId { get; set; } - - public virtual List Recipients { get; set; } = []; - - [MaxLength(150)] - public string EmailAddress { get; set; } - [MaxLength(100)] - public string Subject { get; set; } - public string? Text { get; set; } - - public DateTime Created { get; set; } - public DateTime Modified { get; set; } } \ No newline at end of file diff --git a/TIAM.Entities/Emails/EmailRecipient.cs b/TIAM.Entities/Emails/EmailRecipient.cs index 8ad7c5da..61b81749 100644 --- a/TIAM.Entities/Emails/EmailRecipient.cs +++ b/TIAM.Entities/Emails/EmailRecipient.cs @@ -2,35 +2,20 @@ using AyCode.Interfaces.TimeStampInfo; using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations; +using AyCode.Entities.Messages; using AyCode.Interfaces.Users; namespace TIAM.Entities.Emails; //Update efcore, aspnetcore to 8.0.1; Implement EmailMessage, EmailRecipient; refactoring, improvments, fixes, etc... -public class EmailRecipient : IEntityGuid, ITimeStampInfo, IEmailMessageRelation, IEmailAddress +[Table(nameof(EmailRecipient))] +public class EmailRecipient : AcEmailRecipient //IEntityGuid, ITimeStampInfo, IEmailMessageRelation, IEmailAddress { public EmailRecipient() { } - public EmailRecipient(Guid id, Guid recipientId, Guid emailMessageId, string emailAddress) : this() + public EmailRecipient(Guid id, Guid recipientId, Guid emailMessageId, string emailAddress) : base(id, recipientId, emailMessageId, emailAddress) { - Id = id; - RecipientId = recipientId; - EmailMessageId = emailMessageId; - EmailAddress = emailAddress; } - - [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] - public Guid Id { get; set; } - - public Guid RecipientId { get; set; } - public Guid EmailMessageId { get; set; } - public string EmailAddress { get; set; } - - - public virtual EmailMessage EmailMessage { get; set; } - - public DateTime Created { get; set; } - public DateTime Modified { get; set; } } \ No newline at end of file diff --git a/TIAM.Entities/Emails/IEmailMessage.cs b/TIAM.Entities/Emails/IEmailMessage.cs new file mode 100644 index 00000000..a363d678 --- /dev/null +++ b/TIAM.Entities/Emails/IEmailMessage.cs @@ -0,0 +1,8 @@ +using AyCode.Interfaces.Messages; + +namespace TIAM.Entities.Emails; + +public interface IEmailMessage : IAcEmailMessage, IEmailMessageBase +{ + +} \ No newline at end of file diff --git a/TIAM.Entities/Emails/IEmailMessageBase.cs b/TIAM.Entities/Emails/IEmailMessageBase.cs new file mode 100644 index 00000000..09ac904f --- /dev/null +++ b/TIAM.Entities/Emails/IEmailMessageBase.cs @@ -0,0 +1,8 @@ +using AyCode.Interfaces.Messages; + +namespace TIAM.Entities.Emails; + +public interface IEmailMessageBase : IAcEmailMessageBase +{ + +} \ No newline at end of file diff --git a/TIAM.Entities/Emails/IEmailRecipient.cs b/TIAM.Entities/Emails/IEmailRecipient.cs new file mode 100644 index 00000000..64e86887 --- /dev/null +++ b/TIAM.Entities/Emails/IEmailRecipient.cs @@ -0,0 +1,8 @@ +using AyCode.Interfaces.Messages; + +namespace TIAM.Entities.Emails; + +public interface IEmailRecipient : IAcEmailRecipient, IEmailRecipientBase +{ + +} \ No newline at end of file diff --git a/TIAM.Entities/Emails/IEmailRecipientBase.cs b/TIAM.Entities/Emails/IEmailRecipientBase.cs new file mode 100644 index 00000000..b831fc8d --- /dev/null +++ b/TIAM.Entities/Emails/IEmailRecipientBase.cs @@ -0,0 +1,8 @@ +using AyCode.Interfaces.Messages; + +namespace TIAM.Entities.Emails; + +public interface IEmailRecipientBase : IAcEmailRecipientBase +{ + +} \ No newline at end of file diff --git a/TIAM.Entities/Emails/IMessageSenderService.cs b/TIAM.Entities/Emails/IMessageSenderService.cs new file mode 100644 index 00000000..4551783f --- /dev/null +++ b/TIAM.Entities/Emails/IMessageSenderService.cs @@ -0,0 +1,7 @@ +using AyCode.Interfaces.Messages; + +namespace TIAM.Entities.Emails; + +public interface IMessageSenderService : IAcMessageSenderService +{ +} \ No newline at end of file diff --git a/TIAMWebApp/Client/Services/WizardProcessor.cs b/TIAMWebApp/Client/Services/WizardProcessor.cs index 36d6e603..e2310c17 100644 --- a/TIAMWebApp/Client/Services/WizardProcessor.cs +++ b/TIAMWebApp/Client/Services/WizardProcessor.cs @@ -1,5 +1,4 @@ using AyCode.Interfaces.Enums; -using AyCode.Interfaces.Messages; using System.Diagnostics; using TIAM.Entities.Transfers; using TIAM.Entities.Emails; diff --git a/TIAMWebApp/Server/Controllers/MessageAPIController.cs b/TIAMWebApp/Server/Controllers/MessageAPIController.cs index b328600e..906a537c 100644 --- a/TIAMWebApp/Server/Controllers/MessageAPIController.cs +++ b/TIAMWebApp/Server/Controllers/MessageAPIController.cs @@ -22,7 +22,6 @@ using TIAM.Entities.Users; using TIAMWebApp.Server.ModelsTIAMWebApp.Shared.Application.Models; using TIAMWebApp.Shared.Application.Utility; using TIAM.Entities.Auctions; -using AyCode.Interfaces.Messages; using TIAMWebApp.Shared.Application.Models.ClientSide.Messages; using AyCode.Models.Enums; using TIAM.Database.DataLayers.Admins; diff --git a/TIAMWebApp/Server/Program.cs b/TIAMWebApp/Server/Program.cs index c41924a3..d6c68705 100644 --- a/TIAMWebApp/Server/Program.cs +++ b/TIAMWebApp/Server/Program.cs @@ -1,4 +1,3 @@ -using AyCode.Interfaces.Messages; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Http.Features; using Microsoft.IdentityModel.Tokens; diff --git a/TIAMWebApp/Server/Services/MessageSenderService.cs b/TIAMWebApp/Server/Services/MessageSenderService.cs index 7a2fe8f5..8ada768d 100644 --- a/TIAMWebApp/Server/Services/MessageSenderService.cs +++ b/TIAMWebApp/Server/Services/MessageSenderService.cs @@ -1,5 +1,4 @@ using System.Net; -using AyCode.Interfaces.Messages; using SendGrid; using SendGrid.Helpers.Mail; using AyCode.Models.Enums; @@ -13,27 +12,16 @@ namespace TIAMWebApp.Server.Services { public class MessageSenderService(IConfiguration configuration, AdminDal adminDal) : IMessageSenderService { - //public AdminDal AdminDal = adminDal; - - public async Task SendMessageAsync(TEmailMessage message, int messageType) where TEmailMessage : EmailMessage + public async Task SendMessageAsync(EmailMessage message, int messageType) { var result = ""; switch (messageType) { case (int)MessageTypesEnum.email: - if (message is EmailMessage emailMessage) - { - Console.WriteLine($@"EmailMessage!!!"); - // Access DerivedClass properties - //var subject = emailMessage.Subject; - result = (await SendMailWithSendgrid(emailMessage)).ToString(); //?? HttpStatusCode.BadRequest.ToString(); - } - else - { - // Access BaseClass properties - result = "Invalid message"; - } - + Console.WriteLine($@"EmailMessage!!!"); + // Access DerivedClass properties + //var subject = emailMessage.Subject; + result = (await SendMailWithSendgrid(message)).ToString(); //?? HttpStatusCode.BadRequest.ToString(); break; case (int)MessageTypesEnum.sms: //await SendSmsWithTwilio(message.Message); @@ -44,12 +32,11 @@ namespace TIAMWebApp.Server.Services case (int)MessageTypesEnum.chat: //await SendChatWithSignalR(message.Message); default: - + break; } return result; - } public async Task SendMailWithSendgrid(EmailMessage message) diff --git a/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs b/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs index 0a84cddb..45d12e34 100644 --- a/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs +++ b/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs @@ -1,5 +1,4 @@ -using AyCode.Interfaces.Messages; -using TIAM.Entities.Emails; +using TIAM.Entities.Emails; using System; using System.Collections.Generic; using System.Linq; diff --git a/TIAMWebApp/Shared/Models/ClientSide/Messages/MessageSenderModel.cs b/TIAMWebApp/Shared/Models/ClientSide/Messages/MessageSenderModel.cs index 4a984ed7..a976c707 100644 --- a/TIAMWebApp/Shared/Models/ClientSide/Messages/MessageSenderModel.cs +++ b/TIAMWebApp/Shared/Models/ClientSide/Messages/MessageSenderModel.cs @@ -1,5 +1,4 @@ -using AyCode.Interfaces.Messages; -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text;