using Expose.MyIT.Shared.Models.Methods; using Expose.MyIT.Shared.ViewModels; using Serilog.Context; using System.Text.Json; namespace Expose.MyIT.Server.Models; public class ServiceShopOrderRepository : IServiceShopOrderRepository { private readonly Serilog.ILogger _Log; public ServiceShopOrderRepository() => _Log = Serilog.Log.ForContext(); private static ServiceShopOrder[] GetServiceShopOrders(Shared.Models.ServiceShop? ServiceShop) { ServiceShopOrder[] result = Shared.Models.Stateless.Methods.IServiceShopOrder.GetServiceShopOrders(ServiceShop); return result; } private static Shared.Models.ServiceShop? GetServiceShopOrders() { Shared.Models.ServiceShop? result; string jsonFile = Path.Combine(AppContext.BaseDirectory, "service-shop.json"); string json = File.ReadAllText(jsonFile); result = JsonSerializer.Deserialize(json); return result; } async Task IServiceShopOrderRepository.GetAllServiceShopOrders() { ServiceShopOrder[] results; string? methodName = Shared.Models.Stateless.Methods.IMethodName.GetActualAsyncMethodName(); using (LogContext.PushProperty("MethodName", methodName)) { _Log.Debug("() => ..."); Shared.Models.ServiceShop? ServiceShop = await Task.Run(GetServiceShopOrders); results = GetServiceShopOrders(ServiceShop); } return results.ToArray(); } async Task IServiceShopOrderRepository.GetServiceShopOrders(string id) { ServiceShopOrder[] results; Shared.Models.ServiceShop? ServiceShop = await Task.Run(GetServiceShopOrders); results = GetServiceShopOrders(ServiceShop).Where(l => l.Id == id).ToArray(); return results; } }