Files
Deliverly/ConSegna.Shared/Core/Services/IntegryApiService.cs

103 lines
3.6 KiB
C#

using System.Text;
using System.Text.Json;
using ConSegna.Shared.Core.Dto;
using ConSegna.Shared.Core.Helpers;
using ConSegna.Shared.Core.Interfaces;
using IntegryApiClient.Core.Domain.Abstraction.Contracts.Account;
using IntegryApiClient.Core.Domain.RestClient.Contacts;
namespace ConSegna.Shared.Core.Services;
public class IntegryApiService(
IIntegryApiRestClient integryApiRestClient,
IUserSession userSession,
IGenericSystemService systemService
) : IIntegryApiService
{
public Task<List<DatiClientiDTO>> GetDatiConsegne()
{
var requestDataDto = new RequestDataDTO
{
Username = userSession.User.Username,
DataDoc = systemService.DataApp
};
return integryApiRestClient.AuthorizedPost<List<DatiClientiDTO>>("consegna/getDatiConsegne", requestDataDto)!;
}
public Task<FilesAttachedDTO> GetCertificate() =>
integryApiRestClient.AuthorizedGet<FilesAttachedDTO>("consegna/getCertificato")!;
public Task<Stream> DownloadCertificate(FilesAttachedDTO file) =>
integryApiRestClient.Download($"downloadStbFileAttachment/{file.IdAttach}/{file.FileName}")!;
public Task<Stream> DownloadReport(JasperDTO jasperDto)
{
var dto = Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonSerializer.Serialize(jasperDto)));
var queryParams = new Dictionary<string, object> { { "dto", dto } };
return integryApiRestClient.Download("processReportDownload", queryParams)!;
}
public Task SyncSospesi(List<SospesiClienteDTO> sospesi)
{
var body = sospesi.Where(x => x.Pagato).ToList();
var queryParams = new Dictionary<string, object>
{
{ "username", userSession.User.Username }
};
return integryApiRestClient.AuthorizedPost<object>("consegna/syncSospesi", body, queryParams!);
}
public Task SyncDocument(DatiConsegneDTO bolla)
{
var queryParams = new Dictionary<string, object>
{
{ "username", userSession.User.Username }
};
return integryApiRestClient.AuthorizedPost<object>("consegna/syncDocumenti", bolla, queryParams!);
}
public async Task Upload(FileStream file, DatiConsegneDTO consegna)
{
var queryParams = new Dictionary<string, object>
{
{ "dataDoc", consegna.DataDoc.ToString("d") },
{ "serDoc", consegna.SerDoc },
{ "numDoc", consegna.NumDoc },
{ "codAnag", consegna.CodAnag },
{ "codDtip", consegna.CodDtip }
};
var multipart = new MultipartFormDataContent();
multipart.Add(new StreamContent(file), "files", $"SIGNED_{consegna.FileName}");
await integryApiRestClient.AuthorizedPost<object>("uploadDtbDocPdfFileContent", multipart, queryParams!);
await integryApiRestClient.AuthorizedPost<object>("consegna/notifyUser", consegna);
}
public Task<List<string>> GetAvailablePrinters(string? codMdep, string? printerType)
{
var queryParams = new Dictionary<string, object>
{
{ "codMdep", codMdep },
{ "printerType", printerType }
};
return integryApiRestClient.AuthorizedPost<List<string>>("getAvailablePrinters", null, queryParams!)!;
}
public Task PrintReport(JasperDTO jasperDto, string printerName, int numberOfCopies)
{
var queryParams = new Dictionary<string, object>
{
{ "printerName", printerName },
{ "numberOfCopies", numberOfCopies }
};
return integryApiRestClient.AuthorizedPost<object>("processPrintReport", jasperDto, queryParams!);
}
}