77 lines
2.2 KiB
C#
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();
|
|
}
|
|
}
|
|
} |