private List <ControlChartData> GetViscoChartData(List <BatchReport> reports) { List <ControlChartData> output = new List <ControlChartData>(); var BatchesGroupedByRecipeType = BatchHelperMethods.GroupBatchesByRecipeType(reports); foreach (var recipeType in BatchesGroupedByRecipeType.Keys) { List <decimal> values = new List <decimal>(); List <string> xAxisLabels = new List <string>(); foreach (var report in BatchesGroupedByRecipeType[recipeType].OrderBy(x => x.StartTime.Date).ThenBy(x => x.StartTime.TimeOfDay)) { values.Add(Convert.ToDecimal(report.Visco)); xAxisLabels.Add($"{report.Campaign}-{report.BatchNo}"); } RecipeLimits limits = _recipeLimitRepository.GetLimitInfo(recipeType, LimitType.Visco); ControlChartData data = new ControlChartData { Target = limits.Target, Max = limits.Max, Min = limits.Min, Values = values, XAxisLabels = xAxisLabels, SeriesName = "Visco cP", Title = $"Viscos Of {ChangeRecipeTypeNameForDemo(recipeType)} batches", YAxisSuffix = "cP", ChartId = recipeType.ToString() }; data.ProcessCpkValues(); output.Add(data); _xLCreator.AddToWorkBook <decimal>($"Visco-{recipeType}", values, data.Min, data.Max); } return(output); }
public IViewComponentResult Invoke(RecipeTypes recipeType, string title, double value, LimitType limitType, int height, int width) { CreateGuageViewModel guageViewModel = new CreateGuageViewModel() { ActualValue = value, Title = title, RecipeLimit = _RecipeLimitRepository.GetLimitInfo(recipeType, limitType), Height = height, Width = width }; return(View(guageViewModel)); }
public IActionResult ViewSingleBatch(int batchId) { BatchReport report = _BatchRepository.GetBatchById(batchId); SingleBatchViewModel singleBatchViewModel = new SingleBatchViewModel { Report = report }; singleBatchViewModel.RecipeViscoLimits = _recipeLimitRepository.GetLimitInfo(report.RecipeType, LimitType.Visco); singleBatchViewModel.BatchTimeLimits = _recipeLimitRepository.GetLimitInfo(report.RecipeType, LimitType.MakeTime); GetIssuesForViewModel(singleBatchViewModel); singleBatchViewModel.TotalTimeLost = singleBatchViewModel.TimeIssues.Select(x => x.TimeLost).Sum(); singleBatchViewModel.TotalMatvarIssues = singleBatchViewModel.MatVarIssues.Count(); singleBatchViewModel.TotalQualityIssues = singleBatchViewModel.QualityIssues.Count(); foreach (var vessel in singleBatchViewModel.Report.AllVessels) { vessel.Materials = vessel.Materials.OrderBy(m => m.StartTime.Date).ThenBy(x => x.StartTime.TimeOfDay).ToList(); } return(View(singleBatchViewModel)); }