using ReportingServices.Shared.Blazor.Models.PlanningReport; using ReportingServices.Shared.Blazor.Models.ProductionReport; using System.Text.Json; namespace ReportingServices.Blazor.Services; public class ScrapeDBService { private readonly string APIUrl = "https://localhost:7196/api/ScrapeDB/"; public async Task> GetNCRsAsync() => await GetApi>(APIUrl + "GetCurrentNCRs"); public async Task> GetHoldLotsAsync() => await GetApi>(APIUrl + "GetCurrentHoldLots"); public async Task GetPartChangesAsync(DateTime startDate, DateTime endDate) => await GetApi(APIUrl + "PartChanges?startDate=" + startDate.ToString() + "&endDate=" + endDate.ToString()); public async Task> GetReactorRunsAsync(DateTime startDate, DateTime endDate) => await GetApi>(APIUrl + "PSNWO?startDate=" + startDate.ToString() + "&endDate=" + endDate.ToString()); public async Task GetReactorAndScrapOutsAsync(DateTime startDate, DateTime endDate) => await GetApi(APIUrl + "ReactorOuts?startDate=" + startDate + "&endDate=" + endDate); public async Task GetTargetsAsync() => await GetApi(APIUrl + "Targets"); public async Task GetQuarterStartDate() => await GetApi(APIUrl + "GetQuarterStartDate"); public async Task GetOutsAndScrapAsync(DateTime startDate, DateTime endDate) => await GetApi(APIUrl + "GetOutsAndScrapTotals?startDate=" + startDate + "&endDate=" + endDate); private async Task GetApi(string url) { T deserializedJson = default; using (HttpClient client = new()) { string apiResponse = await client.GetStringAsync(url); deserializedJson = JsonSerializer.Deserialize(apiResponse); } return deserializedJson; } }