using System.Net.Http.Json; using TIAM.Entities.TransferDestinations; using TIAMWebApp.Shared.Application.Interfaces; using TIAMWebApp.Shared.Application.Models; using TIAMWebApp.Shared.Application.Models.ClientSide; using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels; using TIAMWebApp.Shared.Application.Utility; namespace TIAMWebApp.Shared.Application.Services { public class TransferDataService : ITransferDataService { private readonly HttpClient http; private readonly LogToBrowserConsole logToBrowserConsole; public TransferDataService(HttpClient http, LogToBrowserConsole logToBrowserConsole) { this.http = http; this.logToBrowserConsole = logToBrowserConsole; } public async Task> GetDestinationsAsync() { var url = $"{Setting.BaseUrl}/{APIUrls.GetTransferDestinations}"; logToBrowserConsole.LogToBC(url); List? response = await http.GetFromJsonAsync>(url); if(response == null) return new List(); return response; } public async Task GetTransferDestinationbyCoordinatesAsync(string destinationId) { var url = $"{Setting.BaseUrl}/{APIUrls.GetTransferDestinationByCoordinates}"; return await http.GetFromJsonAsync(url); } public async Task GetTransferDestinationbyAddressAsync(string destinationId) { var url = $"{Setting.BaseUrl}/{APIUrls.GetTransferDestinationByAddress}"; return await http.GetFromJsonAsync(url); } public async Task CreateTransferDestination(TransferDestination model) { var url = $"{Setting.BaseUrl}/{APIUrls.CreateTransferDestination}"; var response = await http.PostAsJsonAsync(url, model); //var result = new WizardProcessorResult(); //if (response.IsSuccessStatusCode) //{ // result.IsSucces = true; // result.ResultJson = await response.Content.ReadAsStringAsync(); //} if (!response.IsSuccessStatusCode) return null; var result = (TransferDestination)(await response.Content.ReadFromJsonAsync(typeof(TransferDestination)))!; return result; } public async Task CreateTransfer(TransferWizardModel model) { var url = $"{Setting.BaseUrl}/{APIUrls.CreateTransferDestination}"; var response = await http.PostAsJsonAsync(url, model); //var result = new WizardProcessorResult(); //if (response.IsSuccessStatusCode) //{ // result.IsSucces = true; // result.ResultJson = await response.Content.ReadAsStringAsync(); //} if (!response.IsSuccessStatusCode) return null; var result = (TransferWizardModel)(await response.Content.ReadFromJsonAsync(typeof(TransferWizardModel)))!; return result; } public async Task UpdateTransferDestination(TransferDestination model) { var url = $"{Setting.BaseUrl}/{APIUrls.UpdateTransferDestination}"; var response = await http.PostAsJsonAsync(url, model); //var result = new WizardProcessorResult(); //if (response.IsSuccessStatusCode) //{ // result.IsSucces = true; // result.ResultJson = await response.Content.ReadAsStringAsync(); //} if (!response.IsSuccessStatusCode) return null; var result = (TransferDestination)(await response.Content.ReadFromJsonAsync(typeof(TransferDestination)))!; return result; } } }