From 569fd84725ab15afafa4ae37b29d0827c39a4b46 Mon Sep 17 00:00:00 2001 From: Daniel Wathen Date: Fri, 6 Jan 2023 11:52:50 -0700 Subject: [PATCH] Updated logging. --- .../HelperClasses/DailyReportHelper.cs | 128 +++++++++++++----- .../Controllers/ProductionReportController.cs | 2 +- 2 files changed, 95 insertions(+), 35 deletions(-) diff --git a/ReportingServices.Shared/HelperClasses/DailyReportHelper.cs b/ReportingServices.Shared/HelperClasses/DailyReportHelper.cs index 360a041..8945f6b 100644 --- a/ReportingServices.Shared/HelperClasses/DailyReportHelper.cs +++ b/ReportingServices.Shared/HelperClasses/DailyReportHelper.cs @@ -1,4 +1,5 @@ -using ReportingServices.Shared.Models.ProductionReport; +using Microsoft.Extensions.Logging; +using ReportingServices.Shared.Models.ProductionReport; using ReportingServices.Shared.ViewModels.ProductionReport; namespace ReportingServices.Shared.HelperClasses @@ -8,57 +9,116 @@ namespace ReportingServices.Shared.HelperClasses private static readonly string _dailyRptFilePath = "wwwroot/Assets/DailyReportInfo.json"; private static readonly string _SLLFilePath = "wwwroot/Assets/SLLTools.json"; - public static DailyReport SetUpDailyReport(string baseUrlFabtime, string baseUrlScrapeDb) + public static DailyReport SetUpDailyReport(ILogger logger, string baseUrlFabtime, string baseUrlScrapeDb) { List>> tasksEQState = new(); List>> tasksState = new(); - DailyReport report = new() + DailyReport report = new(); + + try { - SLLTools = JsonFileHandler.LoadJSONFile>(_SLLFilePath), - ManualReportEntries = JsonFileHandler.LoadJSONFile(_dailyRptFilePath) - }; + report.SLLTools = JsonFileHandler.LoadJSONFile>(_SLLFilePath); + report.ManualReportEntries = JsonFileHandler.LoadJSONFile(_dailyRptFilePath); - Task task1 = ApiCaller.GetApi(baseUrlFabtime + "ReactorOuts?startDate=" + report.StartDate.ToString() + "&endDate=" + DateTime.Now.ToString()); - Task task2 = ApiCaller.GetApi(baseUrlFabtime + "ReactorOuts?startDate=" + report.StartDate.AddDays(-7).ToString() + "&endDate=" + report.StartDate.ToString()); + } + catch (Exception ex) + { + logger.LogError(ex, "Failed to load JsonFiles."); + logger.LogInformation("SLL File Path: {path}", _SLLFilePath); + logger.LogInformation("Manual Report Entries File Path: {path}", _dailyRptFilePath); + } - tasksEQState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolStateTrend?toolType=ASM")); - tasksEQState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolStateTrend?toolType=EPP")); - tasksEQState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolStateTrend?toolType=HTR")); - tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=ASM")); - tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=EPP")); - tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=HTR")); - tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=Metrology")); - tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=Cleans")); + Task task1 = null; + Task task2 = null; - Task targets = ApiCaller.GetApi(baseUrlScrapeDb + "Targets"); - Task> rds = ApiCaller.GetApi>(baseUrlScrapeDb + "RDS?date=" + report.StartDate.ToString()); - Task> reactors = ApiCaller.GetApi>(baseUrlScrapeDb + "Reactors"); - report.AddToolAvailibilityByType("ASM", tasksEQState[0].Result); - report.AddToolAvailibilityByType("EPP", tasksEQState[1].Result); - report.AddToolAvailibilityByType("HTR", tasksEQState[2].Result); + try + { + task1 = ApiCaller.GetApi(baseUrlFabtime + "ReactorOuts?startDate=" + report.StartDate.ToString() + "&endDate=" + DateTime.Now.ToString()); + task2 = ApiCaller.GetApi(baseUrlFabtime + "ReactorOuts?startDate=" + report.StartDate.AddDays(-7).ToString() + "&endDate=" + report.StartDate.ToString()); - report.AddToolStateByType("ASM", tasksState[0].Result); - report.AddToolStateByType("EPP", tasksState[1].Result); - report.AddToolStateByType("HTR", tasksState[2].Result); - report.AddToolStateByType("Metrology", tasksState[3].Result); - report.AddToolStateByType("Cleans", tasksState[4].Result); + tasksEQState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolStateTrend?toolType=ASM")); + tasksEQState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolStateTrend?toolType=EPP")); + tasksEQState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolStateTrend?toolType=HTR")); + tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=ASM")); + tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=EPP")); + tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=HTR")); + tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=Metrology")); + tasksState.Add(ApiCaller.GetApi>(baseUrlFabtime + "ToolState?toolType=Cleans")); + } + catch (Exception ex) + { + logger.LogCritical(ex, "Failed to send get requests to fabtime endpoints."); + } - report.QuarterlyTargets = targets.Result; + Task targets = null; + Task> rds = null; + Task> reactors = null; - report.SetRDSInfo(rds.Result); - report.SetReactorInfo(reactors.Result, GetUnscheduledReactors(report)); + try + { + targets = ApiCaller.GetApi(baseUrlScrapeDb + "Targets"); + rds = ApiCaller.GetApi>(baseUrlScrapeDb + "RDS?date=" + report.StartDate.ToString()); + reactors = ApiCaller.GetApi>(baseUrlScrapeDb + "Reactors"); + } + catch (Exception ex) + { + logger.LogCritical(ex, "Failed to send get requests to scrapedb endpoints."); + } - report.CurrentWeek.SetYieldInformation(task1.Result, report.QuarterlyTargets); - report.PreviousWeek.SetYieldInformation(task2.Result, report.QuarterlyTargets); + try + { + report.AddToolAvailibilityByType("ASM", tasksEQState[0].Result); + report.AddToolAvailibilityByType("EPP", tasksEQState[1].Result); + report.AddToolAvailibilityByType("HTR", tasksEQState[2].Result); + + report.AddToolStateByType("ASM", tasksState[0].Result); + report.AddToolStateByType("EPP", tasksState[1].Result); + report.AddToolStateByType("HTR", tasksState[2].Result); + report.AddToolStateByType("Metrology", tasksState[3].Result); + report.AddToolStateByType("Cleans", tasksState[4].Result); + } + catch (Exception ex) + { + logger.LogCritical(ex, "Failed to retrieve data back from Tool State and Tool State Trend FabTime endpoints."); + } + + try + { + report.QuarterlyTargets = targets.Result; + + report.SetRDSInfo(rds.Result); + report.SetReactorInfo(reactors.Result, GetUnscheduledReactors(report)); + } + catch (Exception ex) + { + logger.LogCritical(ex, "Failed to retrieve data back from Scrape DB endpoints."); + } + + try + { + report.CurrentWeek.SetYieldInformation(task1.Result, report.QuarterlyTargets); + report.PreviousWeek.SetYieldInformation(task2.Result, report.QuarterlyTargets); + } + catch (Exception ex) + { + logger.LogCritical(ex, "Failed to retreive data back from ReactorOuts and Scrap endpoints."); + } report.ReverseLists(); ManualReportEntries entries = report.ManualReportEntries; List sll = report.SLLTools; - JsonFileHandler.SaveJSONFile(entries, _dailyRptFilePath); - JsonFileHandler.SaveJSONFile(sll, _SLLFilePath); + try + { + JsonFileHandler.SaveJSONFile(entries, _dailyRptFilePath); + JsonFileHandler.SaveJSONFile(sll, _SLLFilePath); + } + catch (Exception ex) + { + logger.LogCritical(ex, "Failed to save data back to JSON files."); + } return report; } diff --git a/ReportingServices.UI/Controllers/ProductionReportController.cs b/ReportingServices.UI/Controllers/ProductionReportController.cs index fc1fa23..21b8fb2 100644 --- a/ReportingServices.UI/Controllers/ProductionReportController.cs +++ b/ReportingServices.UI/Controllers/ProductionReportController.cs @@ -35,7 +35,7 @@ namespace ReportingServices.UI.Controllers try { - DailyReport dailyReport = DailyReportHelper.SetUpDailyReport(baseFabTimeUrl, baseScrapeDbUrl); + DailyReport dailyReport = DailyReportHelper.SetUpDailyReport(_logger, baseFabTimeUrl, baseScrapeDbUrl); Dictionary> toolStateOwners = JsonFileHandler.LoadJSONFile>>(_toolStateOwnerFilePath); dailyReport.ToolStatesByOwner = toolStateOwners;