Files
SteUP_Dotnet/SteUp.Shared/Core/Services/IntegryApiService.cs

77 lines
2.2 KiB
C#

using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using IntegryApiClient.Core.Domain.RestClient.Contacts;
using Microsoft.Extensions.Logging;
using SteUp.Shared.Core.Dto;
using SteUp.Shared.Core.Interface.IntegryApi;
namespace SteUp.Shared.Core.Services;
public class IntegryApiService(
IIntegryApiRestClient integryApiRestClient,
ILogger<IntegryApiService> logger) : IIntegryApiService
{
public async Task<bool> SystemOk()
{
try
{
await integryApiRestClient.Get<object>("system/ok");
return true;
}
catch (Exception e)
{
logger.LogError(e, e.Message);
Console.WriteLine(e.Message);
return false;
}
}
public Task<List<StbActivityTyperDto>?> SuggestActivityDescription(string activityTypeId) =>
integryApiRestClient.AuthorizedGet<List<StbActivityTyperDto>?>("activity/suggestActivityDescription",
new Dictionary<string, object>
{
{ "activityType", activityTypeId }
}
);
public async Task SendEmail(SendEmailDto sendEmail)
{
var content = new MultipartFormDataContent();
try
{
if (sendEmail.Attachments != null)
{
foreach (var a in sendEmail.Attachments)
{
var fileContent = new ByteArrayContent(a.FileContent);
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data");
content.Add(fileContent, "allegati", a.FileName);
}
}
sendEmail.Attachments = null;
content.Add(
new StringContent(
JsonSerializer.Serialize(sendEmail),
Encoding.UTF8,
"application/json"
),
"request"
);
await integryApiRestClient.AuthorizedPost<object>("sendEmailNew", content);
}
catch (Exception e)
{
Console.WriteLine(e);
logger.LogError(e, e.Message);
throw;
}
finally
{
content.Dispose();
}
}
}