< Summary

Information
Class: ReportingServices.Shared.HelperClasses.DailyReportHelper
Assembly: ReportingServices.Shared
File(s): C:\Users\wathen\source\repos\ReportingServices\ReportingServices.Shared\HelperClasses\DailyReportHelper.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 62
Coverable lines: 62
Total lines: 90
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 12
Branch coverage: 0%
Method coverage

Method coverage is only available for sponsors.

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
.cctor()100%10%
SetUpDailyReport()100%10%
GetUnscheduledReactors(...)0%120%

File(s)

C:\Users\wathen\source\repos\ReportingServices\ReportingServices.Shared\HelperClasses\DailyReportHelper.cs

#LineLine coverage
 1using ReportingServices.Shared.Repositories;
 2using ReportingServices.Shared.Models.ProductionReport;
 3using ReportingServices.Shared.ViewModels.ProductionReport;
 4
 5namespace ReportingServices.Shared.HelperClasses
 6{
 7    public static class DailyReportHelper
 8    {
 09        private static readonly string _dailyRptFilePath = "wwwroot/Assets/DailyReportInfo.json";
 010        private static readonly string _SLLFilePath = "wwwroot/Assets/SLLTools.json";
 011        private static readonly string _baseUrlFabtime = "https://localhost:7196/api/FabTime/";
 012        private static readonly string _baseUrlScrapeDb = "https://localhost:7196/api/ScrapeDB/";
 13
 14        public static DailyReport SetUpDailyReport()
 015        {
 016            List<Task<List<EquipmentStateByDay>>> tasksEQState = new();
 017            List<Task<List<ToolStateCurrent>>> tasksState = new();
 018            DailyReport report = new()
 019            {
 020                SLLTools = JsonFileHandler.LoadJSONFile<List<SLLTool>>(_SLLFilePath),
 021                ManualReportEntries = JsonFileHandler.LoadJSONFile<ManualReportEntries>(_dailyRptFilePath)
 022            };
 23
 024            Task<YieldInformation> task1 = ApiCaller.GetApi<YieldInformation>(_baseUrlFabtime + "ReactorOuts?startDate="
 025            Task<YieldInformation> task2 = ApiCaller.GetApi<YieldInformation>(_baseUrlFabtime + "ReactorOuts?startDate="
 26
 027            tasksEQState.Add(ApiCaller.GetApi<List<EquipmentStateByDay>>(_baseUrlFabtime + "ToolStateTrend?toolType=ASM"
 028            tasksEQState.Add(ApiCaller.GetApi<List<EquipmentStateByDay>>(_baseUrlFabtime + "ToolStateTrend?toolType=EPP"
 029            tasksEQState.Add(ApiCaller.GetApi<List<EquipmentStateByDay>>(_baseUrlFabtime + "ToolStateTrend?toolType=HTR"
 030            tasksState.Add(ApiCaller.GetApi<List<ToolStateCurrent>>(_baseUrlFabtime + "ToolState?toolType=ASM"));
 031            tasksState.Add(ApiCaller.GetApi<List<ToolStateCurrent>>(_baseUrlFabtime + "ToolState?toolType=EPP"));
 032            tasksState.Add(ApiCaller.GetApi<List<ToolStateCurrent>>(_baseUrlFabtime + "ToolState?toolType=HTR"));
 033            tasksState.Add(ApiCaller.GetApi<List<ToolStateCurrent>>(_baseUrlFabtime + "ToolState?toolType=Metrology"));
 034            tasksState.Add(ApiCaller.GetApi<List<ToolStateCurrent>>(_baseUrlFabtime + "ToolState?toolType=Cleans"));
 35
 036            Task<QuarterlyTargets> targets = ApiCaller.GetApi<QuarterlyTargets>(_baseUrlScrapeDb + "Targets");
 037            Task<List<RDS>> rds = ApiCaller.GetApi<List<RDS>>(_baseUrlScrapeDb + "RDS?date=" + report.StartDate.ToString
 038            Task<List<Reactor>> reactors = ApiCaller.GetApi<List<Reactor>>(_baseUrlScrapeDb + "Reactors");
 39
 040            report.AddToolAvailibilityByType("ASM", tasksEQState[0].Result);
 041            report.AddToolAvailibilityByType("EPP", tasksEQState[1].Result);
 042            report.AddToolAvailibilityByType("HTR", tasksEQState[2].Result);
 43
 044            report.AddToolStateByType("ASM", tasksState[0].Result);
 045            report.AddToolStateByType("EPP", tasksState[1].Result);
 046            report.AddToolStateByType("HTR", tasksState[2].Result);
 047            report.AddToolStateByType("Metrology", tasksState[3].Result);
 048            report.AddToolStateByType("Cleans", tasksState[4].Result);
 49
 050            report.QuarterlyTargets = targets.Result;
 51
 052            report.SetRDSInfo(rds.Result);
 053            report.SetReactorInfo(reactors.Result, GetUnscheduledReactors(report));
 54
 055            report.CurrentWeek.SetYieldInformation(task1.Result, report.QuarterlyTargets);
 056            report.PreviousWeek.SetYieldInformation(task2.Result, report.QuarterlyTargets);
 57
 058            report.ReverseLists();
 59
 060            ManualReportEntries entries = report.ManualReportEntries;
 061            List<SLLTool> sll = report.SLLTools;
 62
 063            JsonFileHandler.SaveJSONFile(entries, _dailyRptFilePath);
 064            JsonFileHandler.SaveJSONFile(sll, _SLLFilePath);
 65
 066            return report;
 067        }
 68
 69        public static List<int> GetUnscheduledReactors(DailyReport report)
 070        {
 071            List<int> reactors = new();
 72
 073            foreach (KeyValuePair<string, ToolStateByType> keyValuePairs in report.ToolStateByType)
 074            {
 075                if (keyValuePairs.Key != "Metrology" && keyValuePairs.Key != "Cleans")
 076                {
 077                    foreach (ToolStateCurrent tool in keyValuePairs.Value.ToolStateCurrents)
 078                    {
 079                        if (tool.BasicStateDescription != "Productive" && tool.ReactorStatus != "Out of Service")
 080                        {
 081                            reactors.Add(int.Parse(tool.Tool.Substring(1)));
 082                        }
 083                    }
 084                }
 085            }
 86
 087            return reactors;
 088        }
 89    }
 90}