Refactoring EmailMessage, EmailRecipient, MessageSenderService, etc...
This commit is contained in:
parent
ae741bc6a7
commit
4026ebae5f
|
|
@ -7,7 +7,7 @@ using TIAM.Database.DbContexts.Users;
|
|||
namespace TIAM.Database.Test
|
||||
{
|
||||
[TestClass]
|
||||
public class DatabaseTest : AcDatabaseTestBase<DbContextBase>
|
||||
public class DatabaseTestBase : AcDatabaseTestBase<DbContextBase>
|
||||
{
|
||||
[TestInitialize]
|
||||
public void Setup()
|
||||
|
|
@ -59,12 +59,6 @@
|
|||
<Reference Include="AyCode.Models.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Services.Server">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.Server.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AyCode.Utils">
|
||||
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll</HintPath>
|
||||
</Reference>
|
||||
|
|
|
|||
|
|
@ -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<string> SendMessageAsync<TEmailMessage>(TEmailMessage message, int messageType) where TEmailMessage : EmailMessage;
|
||||
}
|
||||
|
||||
|
||||
[Table(nameof(EmailMessage))]
|
||||
public class EmailMessage : IEntityGuid, ITimeStampInfo, IEmailRecipientsRelation, IEmailAddress
|
||||
public class EmailMessage : AcEmailMessage<EmailRecipient> //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<EmailRecipient> 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; }
|
||||
}
|
||||
|
|
@ -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<EmailMessage> //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; }
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
using AyCode.Interfaces.Messages;
|
||||
|
||||
namespace TIAM.Entities.Emails;
|
||||
|
||||
public interface IEmailMessage : IAcEmailMessage<IEmailRecipientBase>, IEmailMessageBase
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
using AyCode.Interfaces.Messages;
|
||||
|
||||
namespace TIAM.Entities.Emails;
|
||||
|
||||
public interface IEmailMessageBase : IAcEmailMessageBase
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
using AyCode.Interfaces.Messages;
|
||||
|
||||
namespace TIAM.Entities.Emails;
|
||||
|
||||
public interface IEmailRecipient : IAcEmailRecipient<IEmailMessage>, IEmailRecipientBase
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
using AyCode.Interfaces.Messages;
|
||||
|
||||
namespace TIAM.Entities.Emails;
|
||||
|
||||
public interface IEmailRecipientBase : IAcEmailRecipientBase
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
using AyCode.Interfaces.Messages;
|
||||
|
||||
namespace TIAM.Entities.Emails;
|
||||
|
||||
public interface IMessageSenderService : IAcMessageSenderService<EmailMessage, EmailRecipient>
|
||||
{
|
||||
}
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
using AyCode.Interfaces.Enums;
|
||||
using AyCode.Interfaces.Messages;
|
||||
using System.Diagnostics;
|
||||
using TIAM.Entities.Transfers;
|
||||
using TIAM.Entities.Emails;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
using AyCode.Interfaces.Messages;
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
|
|
|
|||
|
|
@ -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<string> SendMessageAsync<TEmailMessage>(TEmailMessage message, int messageType) where TEmailMessage : EmailMessage
|
||||
public async Task<string> 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<HttpStatusCode> SendMailWithSendgrid(EmailMessage message)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using AyCode.Interfaces.Messages;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
|
|
|||
Loading…
Reference in New Issue