TourIAm/TIAMWebApp/Shared/Services/ClientNoticeSenderService.cs

72 lines
2.2 KiB
C#

using TIAMWebApp.Shared.Application.Interfaces;
using TIAMWebApp.Shared.Application.Models.ClientSide;
using TIAMWebApp.Shared.Application.Models;
using System.Net.Http.Json;
//using AyCode.Models.Messages;
using TIAM.Entities.Emails;
using TIAMWebApp.Shared.Application.Models.ClientSide.Messages;
using EmailMessage = TIAM.Entities.Emails.EmailMessage;
namespace TIAMWebApp.Shared.Application.Services
{
public class ClientNoticeSenderService : IClientNoticeSenderService
{
private readonly HttpClient http;
public ClientNoticeSenderService(HttpClient http)
{
this.http = http;
}
public async Task<List<EmailMessage>> GetAllMessagesAsync()
{
throw new NotImplementedException();
}
public async Task<List<EmailMessage>> GetMessagesByContextIdAsync()
{
throw new NotImplementedException();
}
public async Task<string> SendNoticeAsync<TNotice>(TNotice message, int messageType) where TNotice : TIAM.Entities.Emails.EmailMessage
{
var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendEmail}";
if (message != null)
{
EmailMessage? bleh = new EmailMessage();
bleh.Subject = message.Subject;
bleh.SenderId = message.SenderId;
if(messageType == (int)AyCode.Models.Enums.MessageTypesEnum.email)
{
MessageSenderModel<EmailMessage> messageModel = new EmailMessageSenderModel(bleh, (AyCode.Models.Enums.MessageTypesEnum)messageType);
messageModel.Message = message as EmailMessage;
var response = await http.PostAsJsonAsync(url, messageModel);
if (!response.IsSuccessStatusCode)
return null;
var result = (string)(await response.Content.ReadAsStringAsync());
return result;
}
else
{
return "Error sending the message";
}
}
else
{
return "Error sending the message";
}
}
}
}