message, entities, ImessageService

This commit is contained in:
Adam 2023-11-28 14:52:24 +01:00
parent 7e4fe211ff
commit 905347552a
8 changed files with 99 additions and 9 deletions

View File

@ -12,20 +12,20 @@ namespace AyCode.Entities.Messages
public MessageBase() { }
public MessageBase(Guid sender, Guid receiver, string message) : this(Guid.NewGuid(), sender, receiver, message) { }
public MessageBase(Guid id, Guid sender, Guid receiver, string message) : this()
public MessageBase(Guid senderId, Guid receiverId, string message) : this(Guid.NewGuid(), senderId, receiverId, message) { }
public MessageBase(Guid id, Guid senderId, Guid receiverId, string message) : this()
{
Id = id;
Sender = sender;
Receiver = receiver;
SenderId = senderId;
ReceiverId = receiverId;
Message = message;
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid Sender { get; set; }
public Guid SenderId { get; set; }
public Guid Receiver { get; set; }
public Guid ReceiverId { get; set; }
public string Message { get; set; }

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AyCode.Interfaces.Enums
{
public interface IMessageTypes
{
public enum MessageTypesEnum { }
}
}

View File

@ -1,5 +1,6 @@

using AyCode.Interfaces.Entities;
using AyCode.Interfaces.Enums;
using AyCode.Interfaces.TimeStampInfo;
namespace AyCode.Interfaces.Messages

View File

@ -1,7 +1,9 @@
namespace AyCode.Interfaces.Messages
using AyCode.Interfaces.Enums;
namespace AyCode.Interfaces.Messages
{
internal interface IMessageSenderService
public interface IMessageSenderService
{
public Task SendMessageAsync(IMessageBase message);
public Task<bool> SendMessageAsync(IMessageBase message, int[] messageTypes);
}
}

View File

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AyCode.Models.Enums
{
public enum MessageContentType
{
Text,
Image,
Video,
Audio,
File,
Location,
Contact,
Sticker,
Gif,
VoiceNote,
System
}
}

View File

@ -0,0 +1,18 @@
using AyCode.Interfaces.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AyCode.Models.Enums
{
public enum MessageTypesEnum
{
email = 1,
sms = 2,
push = 3,
chat = 4
}
}

View File

@ -0,0 +1,21 @@
using AyCode.Entities.Messages;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AyCode.Models.Messages
{
public class EMailMessage : MessageBase
{
public EMailMessage() { }
public string Subject { get; set; }
public string HtmlContent { get; set; }
public EMailMessage(Guid senderId, Guid receiverId, string message, string subject, string htmlContent) : base(senderId, receiverId, message )
{
Subject = subject;
HtmlContent = htmlContent;
}
}
}

View File

@ -6,6 +6,11 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="SendGrid" Version="9.28.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AyCode.Core.Server\AyCode.Core.Server.csproj" />
<ProjectReference Include="..\AyCode.Core\AyCode.Core.csproj" />
@ -19,4 +24,8 @@
<ProjectReference Include="..\AyCode.Services\AyCode.Services.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Messages\" />
</ItemGroup>
</Project>