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 async Task <IActionResult> Edit(int id, [Bind("RecipeLimitsId,RecipeType,LimitTypes,Min,Max,GuageMax,Target,Tolerance")] RecipeLimits recipeLimits) { if (id != recipeLimits.RecipeLimitsId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(recipeLimits); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RecipeLimitsExists(recipeLimits.RecipeLimitsId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(recipeLimits)); }
public async Task <IActionResult> Create([Bind("RecipeLimitsId,RecipeType,LimitTypes,Min,Max,GuageMax,Target,Tolerance")] RecipeLimits recipeLimits) { if (ModelState.IsValid) { _context.Add(recipeLimits); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(recipeLimits)); }
private List <ControlChartData> GetSoftquatChartData(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>(); string quatName = _applicationData.ApplicationMode == "demo" ? "Material 51" : "SOFTQUAT"; foreach (var report in BatchesGroupedByRecipeType[recipeType].OrderBy(x => x.StartTime.Date).ThenBy(x => x.StartTime.TimeOfDay)) { double softquatWeight = BatchHelperMethods.GetSingleMaterialFromVessel(report, quatName).ActualWeight; values.Add(Convert.ToDecimal(softquatWeight)); xAxisLabels.Add($"{report.Campaign}-{report.BatchNo}"); } RecipeLimits limits = _recipeLimitRepository.GetLimitInfo(recipeType, LimitType.Softquat); ControlChartData data = new ControlChartData { Target = limits.Target, Max = limits.Target + (0.05M * limits.Target), Min = limits.Target - (0.05M * limits.Target), Values = values, XAxisLabels = xAxisLabels, SeriesName = quatName + " Quantity Kg", Title = $"{quatName} Quantity Of {recipeType} Batches", YAxisSuffix = "Kg", ChartId = recipeType.ToString() }; data.ProcessCpkValues(); output.Add(data); _xLCreator.AddToWorkBook <decimal>($"{quatName}-{recipeType}", values, data.Min, data.Max); } return(output); }
/// <summary> /// Called by APIProvider ModEntries /// </summary> public static void RegisterRecipes() { for (int i = 0; i < LimitsProviders.Count; i++) { var recipeLimitsProvider = LimitsProviders[i].Value; var list = recipeLimitsProvider.GetCraftingLimitsRecipes(); if (list != null) { RecipeLimits.SetRecipes(recipeLimitsProvider.GetCraftingLimitsIdentifier(), list.ToList()); var triggers = recipeLimitsProvider.GetCraftingLimitsTriggers(); if (triggers == null) { RecipeLimits.SetInterface(LimitsProviders[i].Key, recipeLimitsProvider.GetCraftingLimitsIdentifier()); } else { for (int i2 = 0; i2 < triggers.Count; i2++) { RecipeLimits.SetInterface(triggers[i2], recipeLimitsProvider.GetCraftingLimitsIdentifier()); } } } } }