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.Helpers; using SteUp.Shared.Core.Interface.IntegryApi; namespace SteUp.Shared.Core.Services; public class IntegryApiService( IIntegryApiRestClient integryApiRestClient, ILogger logger) : IIntegryApiService { public async Task SystemOk() { try { await integryApiRestClient.Get("system/ok"); return true; } catch (Exception e) { logger.LogError(e, e.Message); Console.WriteLine(e.Message); return false; } } public Task?> SuggestActivityDescription(string activityTypeId) => integryApiRestClient.AuthorizedGet?>("activity/suggestActivityDescription", new Dictionary { { "activityType", activityTypeId } } ); public async Task SendEmail(SendEmailDto sendEmail) { using var content = new MultipartFormDataContent(); try { foreach (var a in sendEmail.Attachments ?? []) { var mediaType = a.FileName.EndsWith(".zip", StringComparison.OrdinalIgnoreCase) ? "application/zip" : "application/octet-stream"; content.Add(new FileHttpContent(a.FilePath, mediaType), "allegati", a.FileName); } content.Add( new StringContent( JsonSerializer.Serialize(sendEmail), Encoding.UTF8, "application/json" ), "request" ); await integryApiRestClient.AuthorizedPost("sendEmailNew", content); } catch (Exception e) { Console.WriteLine(e); logger.LogError(e, e.Message); throw; } } }