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 SsaOrderRepository : ISsaOrderRepository { private readonly Serilog.ILogger _Log; public SsaOrderRepository() => _Log = Serilog.Log.ForContext(); private static SsaOrder[] GetSsaOrders(Shared.Models.SSA? ssa) { SsaOrder[] result = Shared.Models.Stateless.Methods.ISsaOrder.GetSsaOrders(ssa); return result; } private static Shared.Models.SSA? GetSsaOrders() { Shared.Models.SSA? result; string jsonFile = Path.Combine(AppContext.BaseDirectory, "ssa.json"); string json = File.ReadAllText(jsonFile); result = JsonSerializer.Deserialize(json); return result; } async Task ISsaOrderRepository.GetAllSsaOrders() { SsaOrder[] results; string? methodName = Shared.Models.Stateless.Methods.IMethodName.GetActualAsyncMethodName(); using (LogContext.PushProperty("MethodName", methodName)) { _Log.Debug("() => ..."); Shared.Models.SSA? ssa = await Task.Run(GetSsaOrders); results = GetSsaOrders(ssa); } return results.ToArray(); } async Task ISsaOrderRepository.GetSsaOrders(string id) { SsaOrder[] results; Shared.Models.SSA? ssa = await Task.Run(GetSsaOrders); results = GetSsaOrders(ssa).Where(l => l.Id == id).ToArray(); return results; } }