Beispiel #1
0
            public void Process(List <Material> materialsToUse)
            {
                UseCount++;
                if (InputMaterials.Any(x => x.IsOre()))
                {
                    var material         = new Material(OutputMaterials.FirstOrDefault().Quantity, OutputMaterials.FirstOrDefault().Type);
                    var existingmaterial = materialsToUse.Where(x => x.Type == OutputMaterials.FirstOrDefault().Type).FirstOrDefault();

                    if (existingmaterial != null)
                    {
                        existingmaterial.Quantity += OutputMaterials.FirstOrDefault().Quantity;
                    }
                    else
                    {
                        materialsToUse.Add(material);
                    }
                }
                else
                {
                    var sufficientMaterials = InputMaterials.TrueForAll(x => x.IsSufficientAvailable(materialsToUse));

                    if (sufficientMaterials)
                    {
                        var factor    = UseMaterialsAndDetermineOutputFactor(materialsToUse);
                        var materials = new List <Material>();
                        var material  = new Material(OutputMaterials.FirstOrDefault().Quantity *factor, OutputMaterials.FirstOrDefault().Type);

                        var existingmaterial = materialsToUse.Where(x => x.Type == OutputMaterials.FirstOrDefault().Type).FirstOrDefault();

                        if (existingmaterial != null)
                        {
                            existingmaterial.Quantity += material.Quantity;
                        }
                        else
                        {
                            materialsToUse.Add(material);
                        }
                    }
                }
            }
Beispiel #2
0
 public ActionResult OutputMaterial(OutputMaterials outputMaterials)
 {
     Repo.CreateOutputMaterial(outputMaterials);
     return(RedirectToAction("OutputMaterial"));
 }
Beispiel #3
0
 public Material FuelMaterial()
 {
     return(OutputMaterials.Where(x => x.Type == "FUEL").FirstOrDefault());
 }
Beispiel #4
0
 public void AddOutput(Material material)
 {
     OutputMaterials.Add(material);
 }