expose-myit/Server/Models/SsaOrderRepository.cs

56 lines
1.7 KiB
C#

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<SsaOrderRepository>();
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<Shared.Models.Ssa>(json);
return result;
}
async Task<SsaOrder[]> 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<SsaOrder[]> 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;
}
}