public async Task <IActionResult> Edit(int id, [Bind("Id,Name,Price")] Cooling cooling)
        {
            if (id != cooling.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(cooling);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CoolingExists(cooling.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(cooling));
        }
Exemple #2
0
 public void ComputerShallowClone()
 {
     #region DefineObject
     var cooling = new Cooling {
         Model = "Corsair Extreme Cooler H115i"
     };
     var processor = new Processor
     {
         Cooling = cooling,
         Model   = "I9-7920X 2.90GHz, 16.5 MB"
     };
     var motherboard = new Motherboard
     {
         Processor   = processor,
         GraphicCard = "GTX 1080 Ti AMP EXTREME",
         Memory      = "G.Skill Trident Z RGB DDR4, 8x16GB, 3466MHz"
     };
     var computer = new Computer(motherboard)
     {
         ProjectName = "My dream nr 7005",
         Case        = "Obudowa Lian Li DK-03X"
     };
     #endregion
     var shallowClone = computer.ShallowClone() as Computer;
     AreNotSame(shallowClone, computer);
     AreSame(shallowClone.Motherboard, computer.Motherboard);
     AreSame(shallowClone.Motherboard.Processor, computer.Motherboard.Processor);
     AreSame(shallowClone.Motherboard.Processor.Cooling, computer.Motherboard.Processor.Cooling);
     AreEqual("Corsair Extreme Cooler H115i", shallowClone.Motherboard.Processor.Cooling.Model);
     AreEqual("Corsair Extreme Cooler H115i", computer.Motherboard.Processor.Cooling.Model);
     shallowClone.Motherboard.Processor.Cooling.Model = "Box";
     AreEqual("Box", shallowClone.Motherboard.Processor.Cooling.Model);
     AreEqual("Box", computer.Motherboard.Processor.Cooling.Model);
 }
Exemple #3
0
        public IActionResult DeleteConfirmed(int id)
        {
            Cooling cooling = dataContext.Coolings.FirstOrDefault(p => p.CoolingId == id);

            dataContext.Coolings.Remove(cooling);
            dataContext.SaveChanges();
            return(RedirectToAction("Index", "Cooling"));
        }
 public Computer()
 {
     motherboard = new Motherboard();
     processor   = new CPU();
     memory      = new Memory();
     graphicCard = new Graphics();
     storage     = new Storage();
     casing      = new Case();
     cooler      = new Cooling();
 }
        public async Task <IActionResult> Create([Bind("Id,Name,Price")] Cooling cooling)
        {
            if (ModelState.IsValid)
            {
                _context.Add(cooling);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(cooling));
        }
            public Cooling()
            {
                productID   = 0;
                productName = "Undefined";

                //initializing Coolings
                for (int i = 0; i < CoolingAvailable.Length; i++)
                {
                    CoolingAvailable[i] = new Cooling(i, "WaterCooling " + i);
                }
            }
Exemple #7
0
        public IActionResult Add()
        {
            Cooling            cooling      = new Cooling();
            var                product      = dataContext.PCComponents.Where(p => p.ComponentCategoryId == 5).ToList();
            var                coolingList  = dataContext.Coolings.ToList();
            List <PCComponent> itemSelected = product;

            foreach (var item in coolingList)
            {
                PCComponent query = dataContext.PCComponents.FirstOrDefault(p => p.PCComponentId == item.PCComponentId);
                itemSelected.Remove(query);
            }
            ViewBag.Selected = new SelectList(itemSelected, "PCComponentId", "PCComponentName");
            return(View(cooling));
        }
Exemple #8
0
 public IActionResult Edit(int id, Cooling cooling)
 {
     if (ModelState.IsValid)
     {
         Cooling oldCooling = dataContext.Coolings.FirstOrDefault(p => p.CoolingId == id);
         oldCooling.CoolingColor     = cooling.CoolingColor;
         oldCooling.CoolingDimension = cooling.CoolingDimension;
         oldCooling.CoolingLED       = cooling.CoolingLED;
         oldCooling.CoolingMaterial  = oldCooling.CoolingMaterial;
         oldCooling.CoolingNoise     = oldCooling.CoolingNoise;
         oldCooling.CoolingRPM       = cooling.CoolingRPM;
         oldCooling.CoolingSocket    = cooling.CoolingSocket;
         oldCooling.CoolingSpec      = cooling.CoolingSpec;
         oldCooling.CoolingWeight    = cooling.CoolingWeight;
         dataContext.SaveChanges();
         ViewBag.Status = 1;
         return(RedirectToAction("Index", "Cooling"));
     }
     return(View(cooling));
 }
Exemple #9
0
        public IActionResult Add(Cooling cooling)
        {
            if (ModelState.IsValid)
            {
                Cooling newCooling = new Cooling
                {
                    CoolingColor     = cooling.CoolingColor,
                    CoolingDimension = cooling.CoolingDimension,
                    CoolingLED       = cooling.CoolingLED,
                    CoolingMaterial  = cooling.CoolingMaterial,
                    CoolingNoise     = cooling.CoolingNoise,
                    CoolingRPM       = cooling.CoolingRPM,
                    CoolingSocket    = cooling.CoolingSocket,
                    CoolingSpec      = cooling.CoolingSpec,
                    CoolingWeight    = cooling.CoolingWeight,
                    PCComponentId    = cooling.PCComponentId
                };

                dataContext.Coolings.Add(newCooling);
                dataContext.SaveChanges();
                return(RedirectToAction("Index", "Cooling"));
            }
            else
            {
                var product     = dataContext.PCComponents.Where(p => p.ComponentCategoryId == 5).ToList();
                var coolingList = dataContext.Coolings.ToList();
                List <PCComponent> itemSelected = product;
                foreach (var item in coolingList)
                {
                    PCComponent query = dataContext.PCComponents.FirstOrDefault(p => p.PCComponentId == item.PCComponentId);
                    itemSelected.Remove(query);
                }
                ViewBag.Selected = new SelectList(itemSelected, "PCComponentId", "PCComponentName");
                return(View(cooling));
            }
        }
Exemple #10
0
        /// <summary>
        /// Parses parameters from the stf reader
        /// </summary>
        /// <param name="stf">Reference to the stf reader</param>
        /// <param name="loco">Reference to the locomotive</param>
        public virtual void Parse(STFReader stf, MSTSDieselLocomotive loco)
        {
            locomotive = loco;
            stf.MustMatch("(");
            bool end = false;

            while (!end)
            {
                string lowercasetoken = stf.ReadItem().ToLower();
                switch (lowercasetoken)
                {
                case "idlerpm": IdleRPM = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.IdleRPM; break;

                case "maxrpm":          MaxRPM = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.MaxRPM; break;

                case "startingrpm": StartingRPM = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.StartingRPM; break;

                case "startingconfirmrpm": StartingConfirmationRPM = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.StartingConfirmRPM; break;

                case "changeuprpmps": ChangeUpRPMpS = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.ChangeUpRPMpS; break;

                case "changedownrpmps": ChangeDownRPMpS = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.ChangeDownRPMpS; break;

                case "rateofchangeuprpmpss": RateOfChangeUpRPMpSS = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.RateOfChangeUpRPMpSS; break;

                case "rateofchangedownrpmpss": RateOfChangeDownRPMpSS = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.RateOfChangeDownRPMpSS; break;

                case "maximalpower":   MaximalPowerW = stf.ReadFloatBlock(STFReader.UNITS.Power, 0); initLevel |= SettingsFlags.MaximalPowerW; break;

                case "idleexhaust":     InitialExhaust = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.IdleExhaust; break;

                case "maxexhaust":      MaxExhaust = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.MaxExhaust; break;

                case "exhaustdynamics": ExhaustAccelIncrease = stf.ReadFloatBlock(STFReader.UNITS.None, 0); initLevel |= SettingsFlags.ExhaustDynamics; break;

                case "exhaustdynamicsdown": ExhaustDecelReduction = stf.ReadFloatBlock(STFReader.UNITS.None, null); initLevel |= SettingsFlags.ExhaustDynamics; break;

                case "exhaustcolor":    ExhaustSteadyColor.PackedValue = stf.ReadHexBlock(Color.Gray.PackedValue); initLevel |= SettingsFlags.ExhaustColor; break;

                case "exhausttransientcolor": ExhaustTransientColor.PackedValue = stf.ReadHexBlock(Color.Black.PackedValue); initLevel |= SettingsFlags.ExhaustTransientColor; break;

                case "dieselpowertab": DieselPowerTab = new Interpolator(stf); initLevel |= SettingsFlags.DieselPowerTab; break;

                case "dieselconsumptiontab": DieselConsumptionTab = new Interpolator(stf); initLevel |= SettingsFlags.DieselConsumptionTab; break;

                case "throttlerpmtab": ThrottleRPMTab = new Interpolator(stf); initLevel |= SettingsFlags.ThrottleRPMTab; break;

                case "dieseltorquetab": DieselTorqueTab = new Interpolator(stf); initLevel |= SettingsFlags.DieselTorqueTab; break;

                case "minoilpressure": DieselMinOilPressurePSI = stf.ReadFloatBlock(STFReader.UNITS.PressureDefaultPSI, 40f); initLevel |= SettingsFlags.MinOilPressure; break;

                case "maxoilpressure": DieselMaxOilPressurePSI = stf.ReadFloatBlock(STFReader.UNITS.PressureDefaultPSI, 120f); initLevel |= SettingsFlags.MaxOilPressure; break;

                case "maxtemperature": DieselMaxTemperatureDeg = stf.ReadFloatBlock(STFReader.UNITS.TemperatureDifference, 100f); initLevel |= SettingsFlags.MaxTemperature; break;

                case "cooling": EngineCooling = (Cooling)stf.ReadIntBlock((int)Cooling.Proportional); initLevel |= SettingsFlags.Cooling; break;      //ReadInt changed to ReadIntBlock

                case "temptimeconstant": DieselTempTimeConstantSec = stf.ReadFloatBlock(STFReader.UNITS.Time, 720f); initLevel |= SettingsFlags.TempTimeConstant; break;

                case "opttemperature": DieselOptimalTemperatureDegC = stf.ReadFloatBlock(STFReader.UNITS.TemperatureDifference, 95f); initLevel |= SettingsFlags.OptTemperature; break;

                case "idletemperature": DieselIdleTemperatureDegC = stf.ReadFloatBlock(STFReader.UNITS.TemperatureDifference, 75f); initLevel |= SettingsFlags.IdleTemperature; break;

                default:
                    end = true;
                    break;
                }
            }
        }
Exemple #11
0
        public void InitFromMSTS(MSTSDieselLocomotive loco)
        {
            if ((initLevel & SettingsFlags.IdleRPM) == 0)
            {
                IdleRPM = loco.IdleRPM;
            }
            if ((initLevel & SettingsFlags.MaxRPM) == 0)
            {
                MaxRPM = loco.MaxRPM;
            }
            InitialMagnitude = loco.InitialMagnitude;
            MaxMagnitude     = loco.MaxMagnitude;
            if ((initLevel & SettingsFlags.MaxExhaust) == 0)
            {
                MaxExhaust = loco.MaxExhaust;
            }
            if ((initLevel & SettingsFlags.ExhaustColor) == 0)
            {
                ExhaustSteadyColor = loco.ExhaustSteadyColor;
            }
            ExhaustDecelColor = loco.ExhaustDecelColor;
            if ((initLevel & SettingsFlags.ExhaustTransientColor) == 0)
            {
                ExhaustTransientColor = loco.ExhaustTransientColor;
            }
            if ((initLevel & SettingsFlags.StartingRPM) == 0)
            {
                StartingRPM = loco.IdleRPM * 2.0f / 3.0f;
            }
            if ((initLevel & SettingsFlags.StartingConfirmRPM) == 0)
            {
                StartingConfirmationRPM = loco.IdleRPM * 1.1f;
            }
            if ((initLevel & SettingsFlags.ChangeUpRPMpS) == 0)
            {
                ChangeUpRPMpS = loco.MaxRPMChangeRate;
            }
            if ((initLevel & SettingsFlags.ChangeDownRPMpS) == 0)
            {
                ChangeDownRPMpS = loco.MaxRPMChangeRate;
            }
            if ((initLevel & SettingsFlags.RateOfChangeUpRPMpSS) == 0)
            {
                RateOfChangeUpRPMpSS = ChangeUpRPMpS;
            }
            if ((initLevel & SettingsFlags.RateOfChangeDownRPMpSS) == 0)
            {
                RateOfChangeDownRPMpSS = ChangeDownRPMpS;
            }
            if ((initLevel & SettingsFlags.MaximalPowerW) == 0)
            {
                MaximalPowerW = loco.MaxPowerW;
            }
            if ((initLevel & SettingsFlags.MaxOilPressure) == 0)
            {
                DieselMaxOilPressurePSI = loco.DieselMaxOilPressurePSI;
            }
            if ((initLevel & SettingsFlags.MinOilPressure) == 0)
            {
                DieselMinOilPressurePSI = loco.DieselMinOilPressurePSI;
            }
            if ((initLevel & SettingsFlags.MaxTemperature) == 0)
            {
                DieselMaxTemperatureDeg = loco.DieselMaxTemperatureDeg;
            }
            if ((initLevel & SettingsFlags.Cooling) == 0)
            {
                EngineCooling = loco.DieselEngineCooling;
            }
            if ((initLevel & SettingsFlags.TempTimeConstant) == 0)
            {
                DieselTempTimeConstantSec = 720f;
            }
            //DieselPowerTab = new Interpolator(new float[] { diesel.IdleRPM, diesel.IdleRPM * 1.01f, diesel.MaxRPM * 0.5f, diesel.MaxRPM }, new float[] { diesel.MaxPowerW * 0.05f, diesel.MaxRPM * 0.1f, diesel.MaxRPM * 0.5f, diesel.MaxPowerW });
            //DieselPowerTab = new Interpolator(new float[] { diesel.IdleRPM, diesel.MaxRPM }, new float[] { diesel.MaxPowerW * 0.05f, diesel.MaxPowerW });
            if ((initLevel & SettingsFlags.DieselConsumptionTab) == 0)
            {
                DieselConsumptionTab = new Interpolator(new float[] { loco.IdleRPM, loco.MaxRPM }, new float[] { loco.DieselUsedPerHourAtIdleL, loco.DieselUsedPerHourAtMaxPowerL });
            }
            if ((initLevel & SettingsFlags.ThrottleRPMTab) == 0)
            {
                ThrottleRPMTab = new Interpolator(new float[] { 0, 100 }, new float[] { loco.IdleRPM, loco.MaxRPM });
            }

            if (((initLevel & SettingsFlags.DieselTorqueTab) == 0) && ((initLevel & SettingsFlags.DieselPowerTab) == 0))
            {
                int     count  = 11;
                float[] rpm    = new float[count + 1];
                float[] power  = new float[] { 0.02034f, 0.09302f, 0.36628f, 0.60756f, 0.69767f, 0.81395f, 0.93023f, 0.9686f, 0.99418f, 0.99418f, 1f, 0.5f };
                float[] torque = new float[] { 0.05f, 0.2f, 0.7f, 0.95f, 1f, 1f, 0.98f, 0.95f, 0.9f, 0.86f, 0.81f, 0.3f };

                for (int i = 0; i < count; i++)
                {
                    if (i == 0)
                    {
                        rpm[i] = loco.IdleRPM;
                    }
                    else
                    {
                        rpm[i] = rpm[i - 1] + (loco.MaxRPM - loco.IdleRPM) / (count - 1);
                    }
                    power[i]  *= MaximalPowerW;
                    torque[i] *= MaximalPowerW / (MaxRPM * 2f * 3.1415f / 60f) / 0.81f;
                }
                rpm[count]     = loco.MaxRPM * 1.5f;
                DieselPowerTab = new Interpolator(rpm, power);
                //DieselPowerTab.test("PowerTab", count);
                DieselTorqueTab = new Interpolator(rpm, torque);
                //DieselTorqueTab.test("TorqueTab", count);
            }

            if (((initLevel & SettingsFlags.DieselTorqueTab) == 0) && ((initLevel & SettingsFlags.DieselPowerTab) == SettingsFlags.DieselPowerTab))
            {
                float[] rpm    = new float[DieselPowerTab.GetSize()];
                float[] torque = new float[DieselPowerTab.GetSize()];
                for (int i = 0; i < DieselPowerTab.GetSize(); i++)
                {
                    rpm[i]    = IdleRPM + (float)i * (MaxRPM - IdleRPM) / (float)DieselPowerTab.GetSize();
                    torque[i] = DieselPowerTab[rpm[i]] / (rpm[i] * 2f * 3.1415f / 60f);
                }
            }

            if (((initLevel & SettingsFlags.DieselTorqueTab) == SettingsFlags.DieselTorqueTab) && ((initLevel & SettingsFlags.DieselPowerTab) == 0))
            {
                float[] rpm   = new float[DieselPowerTab.GetSize()];
                float[] power = new float[DieselPowerTab.GetSize()];
                for (int i = 0; i < DieselPowerTab.GetSize(); i++)
                {
                    rpm[i]   = IdleRPM + (float)i * (MaxRPM - IdleRPM) / (float)DieselPowerTab.GetSize();
                    power[i] = DieselPowerTab[rpm[i]] * rpm[i] * 2f * 3.1415f / 60f;
                }
            }

            InitialExhaust = loco.InitialExhaust;
            MaxExhaust     = loco.MaxExhaust;
            locomotive     = loco;
        }
Exemple #12
0
        public IActionResult Edit(int id)
        {
            Cooling oldCooling = dataContext.Coolings.FirstOrDefault(p => p.CoolingId == id);

            return(View(oldCooling));
        }