using System.Net.Http.Headers; using IntegryApiClient.Core.Domain.RestClient.Contacts; using SteUp.Shared.Core.Dto; using SteUp.Shared.Core.Interface.IntegryApi; namespace SteUp.Shared.Core.Services; public class IntegrySteupService(IIntegryApiRestClient integryApiRestClient) : IIntegrySteupService { private const string BaseRequest = "steup"; #region Retrieve public Task> RetrievePuntiVendita() => integryApiRestClient.AuthorizedGet>($"{BaseRequest}/retrievePuntiVendita")!; public Task> RetrieveReparti() => integryApiRestClient.AuthorizedGet>($"{BaseRequest}/retrieveReparti")!; public Task> RetrieveActivityType() => integryApiRestClient.AuthorizedGet>($"{BaseRequest}/retrieveActivityType")!; public Task?> RetrieveGrigliaPlu(RetrieveGrigliaPluRequestDto request) => integryApiRestClient.AuthorizedPost?>($"{BaseRequest}/retrieveGrigliaPlu", request); public Task RetrieveArtFromBarcode(string barcode) => integryApiRestClient.AuthorizedGet( $"{BaseRequest}/retrieveArtFromBarcode", new Dictionary { { "barcode", barcode } } ); public Task?> RetrieveStatoIspezioni(RetrieveStatoIspezioniRequestDto request) => integryApiRestClient.AuthorizedPost?>($"{BaseRequest}/retrieveStatoIspezioni", request); #endregion #region Save public Task SaveScheda(SaveRequestDto request) => integryApiRestClient.AuthorizedPost($"{BaseRequest}/saveScheda", request); public Task SaveMultipleSchede(List request) => integryApiRestClient.AuthorizedPost($"{BaseRequest}/saveMultipleSchede", request); public Task CompleteInspection(string activityId) => integryApiRestClient.AuthorizedPost( $"{BaseRequest}/complete", new Dictionary { { "activityId", activityId } } ); #endregion public async Task UploadFile(string activityId, byte[] file, string fileName) { var queryParams = new Dictionary { { "activityId", activityId } }; var content = new MultipartFormDataContent(); var fileContent = new ByteArrayContent(file); fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data"); content.Add(fileContent, "file", fileName); await integryApiRestClient.Post($"{BaseRequest}/uploadAttachment", content, queryParams!); content.Dispose(); } public Task DeleteScheda(string activityId) => integryApiRestClient.AuthorizedGet( $"{BaseRequest}/deleteScheda", new Dictionary { { "activityId", activityId } } ); }