using AyCode.Core.Loggers; using AyCode.Interfaces.StorageHandlers; using Microsoft.JSInterop; using Newtonsoft.Json; using SkiaSharp; using System.Net.Http.Json; using AyCode.Services.Loggers; using TIAM.Core.Loggers; using TIAM.Database.DataLayers.Users; using TIAM.Entities.Products; using TIAM.Entities.ServiceProviders; using TIAM.Entities.Users; using TIAMWebApp.Shared.Application.Interfaces; using TIAMWebApp.Shared.Application.Models; using TIAMWebApp.Shared.Application.Models.ClientSide; using TIAMWebApp.Shared.Application.Utility; namespace TIAMWebApp.Shared.Application.Services { public class ServiceProviderDataService : IServiceProviderDataService { private readonly HttpClient http; private readonly ISecureStorageHandler secureStorageHandler; private readonly ILogger _logger; public ServiceProviderDataService(HttpClient http, ISecureStorageHandler secureStorageHandler, IEnumerable logWriters) { this.http = http; this.secureStorageHandler = secureStorageHandler; _logger = new LoggerClient(logWriters.ToArray()); } //22. public Task CreateUserProductMappingAsync(UserProductMapping userProductMapping) { throw new NotImplementedException(); } //19. public Task CreateProductAsync(Product product) { throw new NotImplementedException(); } //15. public Task CreateServiceProviderAsync(TiamServiceProvider serviceProvider) { throw new NotImplementedException(); } //21. public Task DeleteProductAsync(Guid productId) { throw new NotImplementedException(); } //13. public Task DeleteServiceProviderAsync(Guid serviceProviderId) { throw new NotImplementedException(); } //23. public Task> GetUserProductMappingsByProductIdAsync(Guid productId) { throw new NotImplementedException(); } //17. public async Task?> GetPropertiesByOwnerIdAsync(Guid id) { var url = APIUrls.GetServiceProvidersByOwnerId; var response = await http.PostAsJsonAsync(url, id); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadFromJsonAsync>(); _logger.Debug(result.FirstOrDefault().Value); return result; } else { return null; } } //18. public Task GetServiceProviderByIdAsync(Guid id) { throw new NotImplementedException(); } //16. public Task> GetServiceProvidersAsync() { throw new NotImplementedException(); } //24. public Task RemoveUserProductMappingsByContextIdAsync(Guid productId) { throw new NotImplementedException(); } //20. public Task UpdateProductAsync(Product product) { throw new NotImplementedException(); } //14. public Task UpdateServiceProviderAsync(TiamServiceProvider serviceProvider) { throw new NotImplementedException(); } public async Task GetQRCodeByProductIdAsync(Guid productId) { var url = APIUrls.GetQrCodeByProductId; var response = await http.PostAsJsonAsync(url, productId); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); _logger.Debug("SKBitmap width: " + result); return result; } else { return null; } } public async Task> GetProductsForServiceProviderAsync(Guid serviceProviderId) { var url = APIUrls.GetProductsByServiceProviderId; var response = await http.PostAsJsonAsync(url, serviceProviderId); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); //_logger.Detail("Json: " + result); var data = JsonConvert.DeserializeObject>(result); if (data != null) { return data; } else { return null; } } else { return null; } } public async Task> GetAllProductsAsync() { var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetAllProducts}"; var response = await http.GetFromJsonAsync(url, typeof (List)); if (response != null) { return (List)response; } else { return null; } } } }