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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
 /// <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());
                 }
             }
         }
     }
 }