using Expose.MyIT.Shared.Models.Stateless; 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 = ISsaOrder.GetSsaOrders(ssa); return result; } private static Shared.Models.Ssa? GetSsaOrders() { Shared.Models.Ssa? result; string jsonFile; string checkDirectory = Path.Combine(AppContext.BaseDirectory, "Data/Mike"); if (Directory.Exists(checkDirectory)) jsonFile = Path.Combine(checkDirectory, "ssa.json"); else 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 = 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; } }