diff --git a/TIAM.Database.Test/TIAM.Database.Test.csproj b/TIAM.Database.Test/TIAM.Database.Test.csproj
index 003030c6..58787465 100644
--- a/TIAM.Database.Test/TIAM.Database.Test.csproj
+++ b/TIAM.Database.Test/TIAM.Database.Test.csproj
@@ -58,6 +58,21 @@
..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll
+
+ ..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll
+
+
+ ..\..\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.Database/TIAM.Database.csproj b/TIAM.Database/TIAM.Database.csproj
index ba1f4841..7f7e3735 100644
--- a/TIAM.Database/TIAM.Database.csproj
+++ b/TIAM.Database/TIAM.Database.csproj
@@ -43,6 +43,21 @@
..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll
+
+ ..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll
+
+
+ ..\..\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/TIAMWebApp/Client/TIAMWebApp.Client.csproj b/TIAMWebApp/Client/TIAMWebApp.Client.csproj
index 35040ede..ac0e02e1 100644
--- a/TIAMWebApp/Client/TIAMWebApp.Client.csproj
+++ b/TIAMWebApp/Client/TIAMWebApp.Client.csproj
@@ -27,6 +27,12 @@
..\..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll
+
+ ..\..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll
+
+
+ ..\..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll
+
diff --git a/TIAMWebApp/Server/Services/MessageSenderService.cs b/TIAMWebApp/Server/Services/MessageSenderService.cs
new file mode 100644
index 00000000..3183a52a
--- /dev/null
+++ b/TIAMWebApp/Server/Services/MessageSenderService.cs
@@ -0,0 +1,79 @@
+using AyCode.Interfaces.Messages;
+using SendGrid;
+using SendGrid.Helpers.Mail;
+using AyCode.Models.Enums;
+using AyCode.Entities.Messages;
+using AyCode.Models.Messages;
+using TIAM.Database.DataLayers.Users;
+
+
+namespace TIAMWebApp.Server.Controllers
+{
+ public class MessageService : IMessageSenderService
+ {
+ private readonly HttpClient http;
+ private readonly IConfiguration _configuration;
+ public UserDal _userDal;
+
+ public MessageService(HttpClient http, IConfiguration configuration, UserDal userDal)
+ {
+ this.http = http;
+ _configuration = configuration;
+ _userDal = userDal;
+ }
+
+ public async Task SendMessageAsync(IMessageBase message, int[] messageTypes)
+ {
+ foreach (var messageType in messageTypes)
+ {
+ switch (messageType)
+ {
+ case (int)MessageTypesEnum.email:
+ await SendMailWithSendgrid(((EMailMessage)message));
+ break;
+ case (int)MessageTypesEnum.sms:
+ //await SendSmsWithTwilio(message.Message);
+ break;
+ case (int)MessageTypesEnum.push:
+ //await SendPushWithFirebase(message.Message);
+ break;
+ case (int)MessageTypesEnum.chat:
+ //await SendChatWithSignalR(message.Message);
+ default:
+ break;
+ }
+ }
+
+
+ //return true here
+ return await Task.FromResult(true);
+ }
+
+ public async Task SendMailWithSendgrid(EMailMessage message)
+ {
+ //resolve user!!!
+ var senderUser = _userDal.Ctx.Users.FirstOrDefault(x => x.Id == message.SenderId);
+ var receiverUser = _userDal.Ctx.Users.FirstOrDefault(x => x.Id == message.ReceiverId);
+ string apiKey = _configuration["SendGrid:Key"];
+ var _client = new SendGridClient(apiKey);
+ var _from = new EmailAddress("", "");
+ if(message.SenderId == null)
+ {
+
+ _from = new EmailAddress("noreply@tiam.com", "TourIAm mailservice");
+ }
+ else
+ {
+ _from = new EmailAddress(senderUser.Email, senderUser.Email);
+ }
+ var _subject = message.Subject;
+ var _to = new EmailAddress(receiverUser.Email, receiverUser.Email);
+ var _plainTextContent = message.Message;
+ var _htmlContent = message.HtmlContent;
+ var _msg = MailHelper.CreateSingleEmail(_from, _to, message.Subject, _plainTextContent, _htmlContent);
+ var response = await _client.SendEmailAsync(_msg).ConfigureAwait(false);
+ return response.StatusCode.ToString();
+ }
+
+ }
+}
diff --git a/TIAMWebApp/Server/TIAMWebApp.Server.csproj b/TIAMWebApp/Server/TIAMWebApp.Server.csproj
index b25e61a0..b5aa5914 100644
--- a/TIAMWebApp/Server/TIAMWebApp.Server.csproj
+++ b/TIAMWebApp/Server/TIAMWebApp.Server.csproj
@@ -49,6 +49,12 @@
..\..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll
+
+ ..\..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll
+
+
+ ..\..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll
+
..\..\..\AyCode.Core\AyCode.Utils\bin\Debug\net8.0\AyCode.Utils.dll
diff --git a/TIAMWebApp/Server/appsettings.Development.json b/TIAMWebApp/Server/appsettings.Development.json
index 78a8d7c0..e874ef8a 100644
--- a/TIAMWebApp/Server/appsettings.Development.json
+++ b/TIAMWebApp/Server/appsettings.Development.json
@@ -9,5 +9,8 @@
"Key": "Cee4400-rDMFkVvHPufyLDSzbfu2grgRhpepos299IhTLOXsljkcpt3yUR4RRjPQ",
"Issuer": "https://localhost:7116",
"Audience": "http://localhost:7116"
+ },
+ "SendGrid": {
+ "Key": ""
}
}
diff --git a/TIAMWebApp/Server/appsettings.json b/TIAMWebApp/Server/appsettings.json
index 8667b4b9..edfa0e40 100644
--- a/TIAMWebApp/Server/appsettings.json
+++ b/TIAMWebApp/Server/appsettings.json
@@ -13,5 +13,9 @@
"Key": "Cee4400-rDMFkVvHPufyLDSzbfu2grgRhpepos299IhTLOXsljkcpt3yUR4RRjPQ",
"Issuer": "http://localhost:5000",
"Audience": "http://localhost:5000"
+ },
+ "SendGrid": {
+ "Key": ""
}
+
}