コード例 #1
0
        public void RunBatterySimulation()
        {
            // arrange
            var batterySim = new BatteryPackSimulator();

            batterySim.With((args) =>
            {
                var batteryArgs = args as BatteryArgs;
                _battery        = batteryArgs.AddBattery(_battery);
                batteryArgs.UpdateDischargeCurrent(_battery.Uid, 150);
            });

            var i     = 0;
            var limit = 10000;
            var watch = new Stopwatch();

            // act
            watch.Start();
            while (!_battery.State.IsDepleted && watch.ElapsedMilliseconds < limit)
            {
                batterySim.Run();
                i++;
            }
            watch.Stop();
            _log.Trace($"Battery simulation ends after {i} iterations and {watch.ElapsedMilliseconds}ms with depleted battery: {_battery.State.IsDepleted}.");

            // assert
            var s = _battery.State;

            Assert.AreNotEqual(s.Initial.ElapsedTime, s.Now.ElapsedTime, "ElapsedTime should not be equal");
            Assert.AreNotEqual(s.Initial.Charge, s.Now.Charge, "Charge should not be equal");
            Assert.AreNotEqual(s.Initial.SoD, s.Now.SoD, "SoD should not be equal");
            Assert.AreNotEqual(s.Initial.Voltage, s.Now.Voltage, "Voltage should not be equal");
            Assert.IsTrue(s.IsDepleted, "battery should be empty");
        }
コード例 #2
0
        public override void Arrange()
        {
            base.Arrange();


            _battery = new BatteryPack();
        }
コード例 #3
0
        public IActionResult GetBatteryPack(int id)
        {
            BatteryPack batteryPack = new BatteryPack();

            batteryPack = db.BatteryPacks.Include(ad => ad.AddressByDate).ThenInclude(h => h.House).ThenInclude(s => s.Street)
                          .Include(b => b.BatteryConditionBatteryPacks).ThenInclude(bcbp => bcbp.BatteryCondition).First(bp => bp.BatteryPackId == id);
            return(View(batteryPack));
        }
コード例 #4
0
        public ActionResult BatteryPackDeleteConfirmed(int id)
        {
            BatteryPack batteryPack = db.BatteryPacks.Find(id);

            db.BatteryPacks.Remove(batteryPack);
            db.SaveChanges();
            return(RedirectToAction("BatteryPacks"));
        }
コード例 #5
0
 public ActionResult BatteryPackEdit([Bind(Include = "BatteryId,BatteryType,InstallationId")] BatteryPack batteryPack)
 {
     if (ModelState.IsValid)
     {
         db.Entry(batteryPack).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("BatteryPacks"));
     }
     ViewBag.BatteryId      = new SelectList(db.Batteries, "BatteryId", "BatteryType", batteryPack.BatteryId);
     ViewBag.InstallationId = new SelectList(db.Installations, "InstallationId", "ShortcutName", batteryPack.InstallationId);
     return(View(batteryPack));
 }
コード例 #6
0
 internal LowerRedStation(
     CentralReactor whiteReactor,
     ThreatController threatController,
     Gravolift gravolift,
     Doors bluewardDoors,
     Doors redwardDoors,
     SittingDuck sittingDuck) : base(StationLocation.LowerRed, threatController, gravolift, bluewardDoors, redwardDoors, sittingDuck)
 {
     BatteryPack         = new BatteryPack();
     AlphaComponent      = new SideLightLaserCannon(BatteryPack, ZoneLocation.Red);
     BattleBotsComponent = new BattleBotsComponent();
     SideReactor         = new SideReactor(whiteReactor);
 }
コード例 #7
0
        public ActionResult BatteryPackCreate([Bind(Include = "BatteryPackId,ShortcutName,TechnologicalName,MonoblockNumber,StringNumber,DischargeCurrent1,DischargeCurrent2,DischargeCurrent3,ProductionYear,AssemblyDate,LastReviewDate,BatteryId,InstallationId")] BatteryPack batteryPack)
        {
            if (ModelState.IsValid)
            {
                db.BatteryPacks.Add(batteryPack);
                db.SaveChanges();
                return(RedirectToAction("BatteryPacks"));
            }

            ViewBag.BatteryId      = new SelectList(db.Batteries, "BatteryId", "BatteryType", batteryPack.BatteryId);
            ViewBag.InstallationId = new SelectList(db.Installations, "InstallationId", "ShortcutName", batteryPack.InstallationId);
            return(View(batteryPack));
        }
コード例 #8
0
        public ActionResult BatteryPackDelete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BatteryPack batteryPack = db.BatteryPacks.Find(id);

            if (batteryPack == null)
            {
                return(HttpNotFound());
            }
            return(View(batteryPack));
        }
コード例 #9
0
        public ActionResult BatteryPackEdit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BatteryPack batteryPack = db.BatteryPacks.Find(id);

            if (batteryPack == null)
            {
                return(HttpNotFound());
            }
            ViewBag.BatteryId      = new SelectList(db.Batteries, "BatteryId", "BatteryType", batteryPack.BatteryId);
            ViewBag.InstallationId = new SelectList(db.Installations, "InstallationId", "ShortcutName", batteryPack.InstallationId);
            return(View(batteryPack));
        }
コード例 #10
0
 public void Add(BatteryPack battery)
 {
     _items.Add(battery);
 }
 public void HardDelete(BatteryPack batteryPack)
 {
     this.batteryPackRepository.HardDelete(batteryPack);
     this.batteryPackRepository.SaveChanges();
 }
 public void Update(BatteryPack batteryPack)
 {
     this.batteryPackRepository.Update(batteryPack);
     this.batteryPackRepository.SaveChanges();
 }
 public void Add(BatteryPack batteryPack)
 {
     this.batteryPackRepository.Add(batteryPack);
     this.batteryPackRepository.SaveChanges();
 }
コード例 #14
0
        public static async Task SeedDatabase(ApplicationDbContext context,
                                              UserManager <ApplicationUser> userManager)
        {
            if (!context.Users.Any())
            {
                var personsWithPasswords = new List <PersonWithPassword>
                {
                    new PersonWithPassword
                    (
                        new ApplicationUser
                    {
                        UserName = "******",
                        Email    = "*****@*****.**",
                        Address  = "45 Long Beach Blvd, Miami"
                    },
                        new Person
                    {
                        FirstName = "John",
                        LastName  = "Doe"
                    },
                        "NewPassword123$"
                    ),
                    new PersonWithPassword
                    (
                        new ApplicationUser
                    {
                        UserName = "******",
                        Email    = "*****@*****.**",
                        Address  = "15 Square Ave, London"
                    },
                        new Person
                    {
                        FirstName = "Michael",
                        LastName  = "Jordan"
                    },
                        "FreshPassword123$"
                    )
                };

                foreach (var personWithPassword in personsWithPasswords)
                {
                    var applicationUser = personWithPassword.AppUser;

                    IdentityResult result =
                        await userManager.CreateAsync(applicationUser, personWithPassword.Password);

                    if (result.Succeeded)
                    {
                        var person = personWithPassword.Person;

                        person.ApplicationUserId = applicationUser.Id;

                        context.Persons.Add(person);
                    }
                }

                context.SaveChanges();
            }

            if (!context.Manufacturers.Any())
            {
                var manufacturers = new List <Manufacturer>
                {
                    new Manufacturer()
                    {
                        Name = "Philips"
                    },
                    new Manufacturer()
                    {
                        Name = "Siemens"
                    },
                    new Manufacturer()
                    {
                        Name = "Samsung"
                    },
                    new Manufacturer()
                    {
                        Name = "Asus"
                    },
                    new Manufacturer()
                    {
                        Name = "IBM"
                    },
                    new Manufacturer()
                    {
                        Name = "Whirlpool"
                    },
                    new Manufacturer()
                    {
                        Name = "LG"
                    },
                    new Manufacturer()
                    {
                        Name = "Solar City"
                    },
                    new Manufacturer()
                    {
                        Name = "Tesla"
                    },
                    new Manufacturer()
                    {
                        Name = "Teledyne Energy Systems"
                    },
                };

                context.Manufacturers.AddRange(manufacturers);

                context.SaveChanges();
            }

            if (!context.ElectricalDeviceTypes.Any())
            {
                var electricalDeviceTypes = new List <ElectricalDeviceType>
                {
                    new ElectricalDeviceType()
                    {
                        TypeName = "LED Light"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Washing Machine"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Air conditioner"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Computer"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Refridgerator"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Electronic Microscope"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Water Pump"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Water Heater"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Energy Generator"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Solar panel"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Radioisotope Thermoelectric Generator"
                    },
                    new ElectricalDeviceType()
                    {
                        TypeName = "Battery Pack"
                    }
                };

                context.ElectricalDeviceTypes.AddRange(electricalDeviceTypes);

                context.SaveChanges();
            }

            if (!context.ElectricalDeviceModels.Any())
            {
                var philips   = context.Manufacturers.FirstOrDefault(m => m.Name == "Philips");
                var siemens   = context.Manufacturers.FirstOrDefault(m => m.Name == "Siemens");
                var samsung   = context.Manufacturers.FirstOrDefault(m => m.Name == "Samsung");
                var whirlpool = context.Manufacturers.FirstOrDefault(m => m.Name == "Whirlpool");
                var lg        = context.Manufacturers.FirstOrDefault(m => m.Name == "LG");
                var solarCity = context.Manufacturers.FirstOrDefault(m => m.Name == "Solar City");
                var tesla     = context.Manufacturers.FirstOrDefault(m => m.Name == "Tesla");
                var teledyne  = context.Manufacturers.FirstOrDefault(m => m.Name == "Teledyne Energy Systems");

                var electricalDeviceModels = new List <ElectricalDeviceModel>
                {
                    new ElectricalDeviceModel()
                    {
                        ModelName              = "Philips CH5 Air Conditioner",
                        MeasuringUnit          = "Degrees (C)",
                        MinValue               = 18.0d,
                        MaxValue               = 30.0d,
                        Step                   = 1.0d,
                        PowerPerStep           = 5.6d,
                        PowerAtLowestUnitLevel = 30.0d,
                        ModelIdentifier        = "KL54-PLPS",
                        Manufacturer           = philips,
                        ElectricalDeviceType   =
                            context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Air conditioner")
                    },
                    new ElectricalDeviceModel()
                    {
                        ModelName              = "Siemens LED Light FC83H",
                        MeasuringUnit          = "Lumens",
                        MinValue               = 30.0d,
                        MaxValue               = 90.0d,
                        Step                   = 5.0d,
                        PowerPerStep           = 0.6,
                        PowerAtLowestUnitLevel = 4.0d,
                        ModelIdentifier        = "9DE4-SMNS",
                        Manufacturer           = siemens,
                        ElectricalDeviceType   =
                            context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "LED Light")
                    },
                    new ElectricalDeviceModel()
                    {
                        ModelName              = "Samsung Fridge DL23M",
                        MeasuringUnit          = "Degrees (C)",
                        MinValue               = -15.0d,
                        MaxValue               = 6.0d,
                        Step                   = 1.0d,
                        PowerPerStep           = 7.0d,
                        PowerAtLowestUnitLevel = 35.0d,
                        ModelIdentifier        = "CV7J-SMSG",
                        Manufacturer           = samsung,
                        ElectricalDeviceType   =
                            context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Refridgerator")
                    },
                    new ElectricalDeviceModel()
                    {
                        ModelName              = "Whirlpool Water Pump DH4F",
                        MeasuringUnit          = "LitresPerMin",
                        MinValue               = 0.5d,
                        MaxValue               = 20.0d,
                        Step                   = 0.5d,
                        PowerPerStep           = 7.0d,
                        PowerAtLowestUnitLevel = 45.0d,
                        ModelIdentifier        = "JE3C-WHPL",
                        Manufacturer           = whirlpool,
                        ElectricalDeviceType   =
                            context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Water Pump")
                    },
                    new ElectricalDeviceModel()
                    {
                        ModelName              = "LG Water Heater KD25",
                        MeasuringUnit          = "Degrees (C)",
                        MinValue               = 20.0d,
                        MaxValue               = 80.0d,
                        Step                   = 1.0d,
                        PowerPerStep           = 0.5d,
                        PowerAtLowestUnitLevel = 22.0d,
                        ModelIdentifier        = "90QW-LGLG",
                        Manufacturer           = lg,
                        ElectricalDeviceType   =
                            context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Water Heater")
                    },
                    new ElectricalDeviceModel()
                    {
                        ModelName              = "Solar City MX45 Panel",
                        MeasuringUnit          = "Watts",
                        MinValue               = 0.0d,
                        MaxValue               = 80.0d,
                        Step                   = 1.0d,
                        PowerPerStep           = 0.5d,
                        PowerAtLowestUnitLevel = 0.0d,
                        ModelIdentifier        = "34FD-SLCT",
                        Manufacturer           = solarCity,
                        ElectricalDeviceType   =
                            context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Solar panel")
                    },
                    new ElectricalDeviceModel()
                    {
                        ModelName              = "Teledyne HJ24 MMRTG",
                        MeasuringUnit          = "Degrees (C)",
                        MinValue               = 0.0d,
                        MaxValue               = 120.0d,
                        Step                   = 1.0d,
                        PowerPerStep           = 0.5d,
                        PowerAtLowestUnitLevel = 0.0d,
                        ModelIdentifier        = "3F4F-TLDN",
                        Manufacturer           = teledyne,
                        ElectricalDeviceType   =
                            context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Radioisotope Thermoelectric Generator")
                    },
                    new ElectricalDeviceModel()
                    {
                        ModelName              = "Tesla 24CF Power Pack",
                        Capacity               = 50000,
                        MeasuringUnit          = "Degrees (C)",
                        MinValue               = 0.0d,
                        MaxValue               = 250.0d,
                        Step                   = 1.0d,
                        PowerPerStep           = 0.5d,
                        PowerAtLowestUnitLevel = 0.0d,
                        ModelIdentifier        = "90QW-TSLA",
                        Manufacturer           = tesla,
                        ElectricalDeviceType   =
                            context.ElectricalDeviceTypes.FirstOrDefault(edt => edt.TypeName == "Battery Pack")
                    }
                };

                context.ElectricalDeviceModels.AddRange(electricalDeviceModels);

                context.SaveChanges();

                if (!context.EnergyGenerators.Any())
                {
                    var energyGenerators = new List <EnergyGenerator>();

                    var teledyneRadioisotopeGeneratorModel =
                        context.ElectricalDeviceModels.FirstOrDefault(edm => edm.ModelName == "Teledyne HJ24 MMRTG");

                    var radioisotopeGenerator = new EnergyGenerator()
                    {
                        SerialNumber          = "VC23-DF42-OK49-3F4F-TLDN",
                        ElectricalDeviceModel = teledyneRadioisotopeGeneratorModel
                    };

                    energyGenerators.Add(radioisotopeGenerator);

                    var radioisotopeGeneratorSecond = new EnergyGenerator()
                    {
                        SerialNumber          = "LQ21-CA30-SQ1P-3F4F-TLDN",
                        ElectricalDeviceModel = teledyneRadioisotopeGeneratorModel
                    };

                    energyGenerators.Add(radioisotopeGeneratorSecond);

                    string[] setOfStrings = new string[]
                    {
                        "JFC9", "PO92", "CXO9", "AZ39", "PO9W", "QE31", "SXL4", "BA6G"
                    };

                    var solarCityPanelModel =
                        context.ElectricalDeviceModels.FirstOrDefault(edm => edm.ModelName == "Solar City MX45 Panel");

                    int setLength = setOfStrings.Length;

                    Random randomGenerator = new Random();

                    for (int i = 0; i < 20; i++)
                    {
                        StringBuilder sb = new StringBuilder();

                        for (int j = 0; j < 3; j++)
                        {
                            string randomString = setOfStrings[randomGenerator.Next(0, setLength)];
                            sb.AppendFormat("{0}-", randomString);
                        }

                        var energyGenerator = new EnergyGenerator()
                        {
                            SerialNumber          = sb.ToString(),
                            ElectricalDeviceModel = solarCityPanelModel
                        };

                        energyGenerators.Add(energyGenerator);
                    }

                    context.EnergyGenerators.AddRange(energyGenerators);

                    context.SaveChanges();
                }

                if (!context.BatteryPacks.Any())
                {
                    var battery = new BatteryPack()
                    {
                        SerialNumber          = "D3AP-W24C-QW2X-90QW-TSLA",
                        ElectricalDeviceModel =
                            context.ElectricalDeviceModels.FirstOrDefault(edm => edm.ModelName == "Tesla 24CF Power Pack")
                    };

                    context.BatteryPacks.Add(battery);

                    context.SaveChanges();
                }
            }

            if (!context.BaseUnits.Any())
            {
                context.BaseUnits.AddRange
                (
                    new BaseUnit {
                    Name = "Living Space"
                },
                    new BaseUnit {
                    Name = "Green House"
                }
                );
                context.SaveChanges();
            }

            if (!context.ElectricalSystemTypes.Any())
            {
                var electricalSystemTypes = new List <ElectricalSystemType>
                {
                    new ElectricalSystemType {
                        Name = "Air-Conditining System"
                    },
                    new ElectricalSystemType {
                        Name = "Lighting System"
                    },
                    new ElectricalSystemType {
                        Name = "Fridge System"
                    },
                    new ElectricalSystemType {
                        Name = "Water Pumping System"
                    },
                    new ElectricalSystemType {
                        Name = "Water Heating System"
                    }
                };

                context.ElectricalSystemTypes.AddRange(electricalSystemTypes);

                context.SaveChanges();
            }


            if (!context.ElectricalSystems.Any())
            {
                var livingSpaceBaseUnit = context.BaseUnits.FirstOrDefault(u => u.Name == "Living Space");

                var greenHouseBaseUnit = context.BaseUnits.FirstOrDefault(bu => bu.Name == "Green House");

                var airConditioningSystemType =
                    context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Air-Conditining System");

                var ligthingSystemType =
                    context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Lighting System");

                var fridgeSystemType =
                    context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Fridge System");

                var waterPumpingSystemType =
                    context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Water Pumping System");

                var waterHeatingSystemType =
                    context.ElectricalSystemTypes.FirstOrDefault(est => est.Name == "Water Heating System");

                var airConditioningLivingSpace = new ElectricalSystem()
                {
                    Name                 = "Air Conditioning System (Living Space)",
                    BaseUnit             = livingSpaceBaseUnit,
                    ElectricalSystemType = airConditioningSystemType
                };

                var airConditioningGreenHouse = new ElectricalSystem()
                {
                    Name                 = "Air Conditioning System (Green House)",
                    BaseUnit             = greenHouseBaseUnit,
                    ElectricalSystemType = airConditioningSystemType
                };

                var lightsSystemLivingSpace = new ElectricalSystem()
                {
                    Name                 = "LED Lights (Living Space)",
                    BaseUnit             = livingSpaceBaseUnit,
                    ElectricalSystemType = ligthingSystemType
                };

                var lightsSystemGreenHouse = new ElectricalSystem()
                {
                    Name                 = "LED Lights (Green House)",
                    BaseUnit             = greenHouseBaseUnit,
                    ElectricalSystemType = ligthingSystemType
                };

                var fridgeSystemLivingSpace = new ElectricalSystem()
                {
                    Name                 = "Fridge System (Living Space)",
                    BaseUnit             = livingSpaceBaseUnit,
                    ElectricalSystemType = fridgeSystemType
                };

                var fridgeSystemGreenHouse = new ElectricalSystem()
                {
                    Name                 = "Fridge System (Green House)",
                    BaseUnit             = greenHouseBaseUnit,
                    ElectricalSystemType = fridgeSystemType
                };

                var waterPumpSystemLivingSpace = new ElectricalSystem()
                {
                    Name                 = "Water Pumping System (Living Space)",
                    BaseUnit             = livingSpaceBaseUnit,
                    ElectricalSystemType = waterPumpingSystemType
                };

                var waterPumpSystemGreenHouse = new ElectricalSystem()
                {
                    Name                 = "Water Pumping System (Green House)",
                    BaseUnit             = greenHouseBaseUnit,
                    ElectricalSystemType = waterPumpingSystemType
                };

                var waterHeatingSystemLivingSpace = new ElectricalSystem()
                {
                    Name                 = "Water Heating System (Living Space)",
                    BaseUnit             = livingSpaceBaseUnit,
                    ElectricalSystemType = waterHeatingSystemType
                };

                var waterHeatingSystemGreenHouse = new ElectricalSystem()
                {
                    Name                 = "Water Heating System (Green House)",
                    BaseUnit             = greenHouseBaseUnit,
                    ElectricalSystemType = waterHeatingSystemType
                };

                var electricalSystems = new List <ElectricalSystem>
                {
                    airConditioningLivingSpace,
                    airConditioningGreenHouse,
                    lightsSystemLivingSpace,
                    lightsSystemGreenHouse,
                    fridgeSystemLivingSpace,
                    fridgeSystemGreenHouse,
                    waterPumpSystemLivingSpace,
                    waterPumpSystemGreenHouse,
                    waterHeatingSystemLivingSpace,
                    waterHeatingSystemGreenHouse
                };

                context.ElectricalSystems.AddRange(electricalSystems);

                context.SaveChanges();
            }

            if (!context.ElectricalDevices.Any())
            {
                var ledLightsLivingSpaceSystem =
                    context.ElectricalSystems.FirstOrDefault(es => es.Name == "LED Lights (Living Space)");

                var ledLightsGreenHouseSystem =
                    context.ElectricalSystems.FirstOrDefault(es => es.Name == "LED Lights (Living Space)");

                var philipsCH5AirConditioner =
                    context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "Philips CH5 Air Conditioner");

                var siemensLEDLightFC83H = context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "Siemens LED Light FC83H");

                var samsungFridgeDL23M = context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "Samsung Fridge DL23M");

                var whirlpoolWaterPumpDH4F = context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "Whirlpool Water Pump DH4F");

                var lgWaterHeaterKD25 = context.ElectricalDeviceModels.FirstOrDefault(es => es.ModelName == "LG Water Heater KD25");

                var electricalDevices = new List <ElectricalDevice>
                {
                    new ElectricalDevice()
                    {
                        SerialNumber          = "4HDE-BHRU-98CH-KL54-PLPS",
                        ElectricalDeviceModel = philipsCH5AirConditioner,
                        ElectricalSystem      =
                            context.ElectricalSystems.FirstOrDefault(es => es.Name == "Air Conditioning System (Living Space)"),
                        MeasuringUnitCurrentLevel = 21.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber          = "BNMV-RT65-AS9K-KL54-PLPS",
                        ElectricalDeviceModel = philipsCH5AirConditioner,
                        ElectricalSystem      =
                            context.ElectricalSystems.FirstOrDefault(es => es.Name == "Air Conditioning System (Green House)"),
                        MeasuringUnitCurrentLevel = 21.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber              = "8XCD-GHJD-82WD-9DE4-SMNS",
                        ElectricalDeviceModel     = siemensLEDLightFC83H,
                        ElectricalSystem          = ledLightsLivingSpaceSystem,
                        MeasuringUnitCurrentLevel = 30.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber              = "KERL-PKS1-DF9A-9DE4-SMNS",
                        ElectricalDeviceModel     = siemensLEDLightFC83H,
                        ElectricalSystem          = ledLightsLivingSpaceSystem,
                        MeasuringUnitCurrentLevel = 30.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber              = "BCRE-MGHW-KSD3-9DE4-SMNS",
                        ElectricalDeviceModel     = siemensLEDLightFC83H,
                        ElectricalSystem          = ledLightsGreenHouseSystem,
                        MeasuringUnitCurrentLevel = 45.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber              = "PA8G-LM2A-DF9A-9DE4-SMNS",
                        ElectricalDeviceModel     = siemensLEDLightFC83H,
                        ElectricalSystem          = ledLightsGreenHouseSystem,
                        MeasuringUnitCurrentLevel = 45.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber          = "PKLC-WERP-CVBH-CV7J-SMSG",
                        ElectricalDeviceModel = samsungFridgeDL23M,
                        ElectricalSystem      =
                            context.ElectricalSystems.FirstOrDefault(es => es.Name == "Fridge System (Living Space)"),
                        MeasuringUnitCurrentLevel = 4.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber          = "MVC8-KDKD-CD9K-CV7J-SMSG",
                        ElectricalDeviceModel = samsungFridgeDL23M,
                        ElectricalSystem      =
                            context.ElectricalSystems.FirstOrDefault(es => es.Name == "Fridge System (Green House)"),
                        MeasuringUnitCurrentLevel = 4.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber          = "FH3S-DE4C-CF5D-JE3C-WHPL",
                        ElectricalDeviceModel = whirlpoolWaterPumpDH4F,
                        ElectricalSystem      =
                            context.ElectricalSystems.FirstOrDefault(es => es.Name == "Water Pumping System (Living Space)"),
                        MeasuringUnitCurrentLevel = 14.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber          = "MVC8-KDKD-CD9K-JE3C-WHPL",
                        ElectricalDeviceModel = whirlpoolWaterPumpDH4F,
                        ElectricalSystem      =
                            context.ElectricalSystems.FirstOrDefault(es => es.Name == "Water Pumping System (Green House)"),
                        MeasuringUnitCurrentLevel = 0.5d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber          = "8XCD-GHJD-82WD-90QW-LGLG",
                        ElectricalDeviceModel = lgWaterHeaterKD25,
                        ElectricalSystem      =
                            context.ElectricalSystems.FirstOrDefault(es => es.Name == "Water Heating System (Living Space)"),
                        MeasuringUnitCurrentLevel = 70.0d
                    },
                    new ElectricalDevice()
                    {
                        SerialNumber          = "KL2W-AS2E-WE3C-90QW-LGLG",
                        ElectricalDeviceModel = lgWaterHeaterKD25,
                        ElectricalSystem      =
                            context.ElectricalSystems.FirstOrDefault(es => es.Name == "Water Heating System (Green House)"),
                        MeasuringUnitCurrentLevel = 20.0d
                    }
                };

                context.ElectricalDevices.AddRange(electricalDevices);

                context.SaveChanges();
            }
        }
コード例 #15
0
        //TODO: Wire up all 3 stations if variable range interceptors are allowed
        public SittingDuck()
        {
            CurrentThreatBuffs     = new Dictionary <ExternalThreat, ExternalThreatBuff>();
            CurrentInternalThreats = new List <InternalThreat>();
            CurrentExternalThreats = new List <ExternalThreat>();
            var whiteReactor                = new CentralReactor();
            var redReactor                  = new SideReactor(whiteReactor);
            var blueReactor                 = new SideReactor(whiteReactor);
            var redBatteryPack              = new BatteryPack();
            var blueBatteryPack             = new BatteryPack();
            var computerComponent           = new ComputerComponent();
            var visualConfirmationComponent = new VisualConfirmationComponent();
            var rocketsComponent            = new RocketsComponent();

            Computer = computerComponent;
            VisualConfirmationComponent = visualConfirmationComponent;
            RocketsComponent            = rocketsComponent;
            var interceptorStation = new InterceptorStation
            {
                StationLocation = StationLocation.Interceptor
            };
            var upperRedStation = new StandardStation
            {
                Cannon          = new SideHeavyLaserCannon(redReactor, ZoneLocation.Red),
                EnergyContainer = new SideShield(redReactor),
                StationLocation = StationLocation.UpperRed
            };

            interceptorStation.InterceptorComponent = new InterceptorComponent(null, upperRedStation);
            upperRedStation.CComponent = new InterceptorComponent(interceptorStation, null);
            var upperWhiteStation = new StandardStation
            {
                Cannon          = new CentralHeavyLaserCannon(whiteReactor, ZoneLocation.White),
                EnergyContainer = new CentralShield(whiteReactor),
                StationLocation = StationLocation.UpperWhite,
                CComponent      = computerComponent
            };
            var upperBlueStation = new StandardStation
            {
                Cannon          = new SideHeavyLaserCannon(blueReactor, ZoneLocation.Blue),
                EnergyContainer = new SideShield(blueReactor),
                StationLocation = StationLocation.UpperBlue,
                CComponent      = new BattleBotsComponent()
            };
            var lowerRedStation = new StandardStation
            {
                Cannon          = new SideLightLaserCannon(redBatteryPack, ZoneLocation.Red),
                EnergyContainer = redReactor,
                StationLocation = StationLocation.LowerRed,
                CComponent      = new BattleBotsComponent()
            };

            var lowerWhiteStation = new StandardStation
            {
                Cannon          = new PulseCannon(whiteReactor),
                EnergyContainer = whiteReactor,
                StationLocation = StationLocation.LowerWhite,
                CComponent      = visualConfirmationComponent
            };
            var lowerBlueStation = new StandardStation
            {
                Cannon          = new SideLightLaserCannon(blueBatteryPack, ZoneLocation.Blue),
                EnergyContainer = blueReactor,
                StationLocation = StationLocation.LowerBlue,
                CComponent      = rocketsComponent
            };

            upperRedStation.BluewardStation       = upperWhiteStation;
            upperRedStation.OppositeDeckStation   = lowerRedStation;
            upperWhiteStation.RedwardStation      = upperRedStation;
            upperWhiteStation.BluewardStation     = upperBlueStation;
            upperWhiteStation.OppositeDeckStation = lowerWhiteStation;
            upperBlueStation.RedwardStation       = upperWhiteStation;
            upperBlueStation.OppositeDeckStation  = lowerBlueStation;
            lowerRedStation.BluewardStation       = lowerWhiteStation;
            lowerRedStation.OppositeDeckStation   = upperRedStation;
            lowerWhiteStation.RedwardStation      = lowerRedStation;
            lowerWhiteStation.BluewardStation     = lowerBlueStation;
            lowerWhiteStation.OppositeDeckStation = upperWhiteStation;
            lowerBlueStation.RedwardStation       = lowerWhiteStation;
            lowerBlueStation.OppositeDeckStation  = upperBlueStation;

            RedZone = new Zone {
                LowerStation = lowerRedStation, UpperStation = upperRedStation, ZoneLocation = ZoneLocation.Red, Gravolift = new Gravolift()
            };
            WhiteZone = new Zone {
                LowerStation = lowerWhiteStation, UpperStation = upperWhiteStation, ZoneLocation = ZoneLocation.White, Gravolift = new Gravolift()
            };
            BlueZone = new Zone {
                LowerStation = lowerBlueStation, UpperStation = upperBlueStation, ZoneLocation = ZoneLocation.Blue, Gravolift = new Gravolift()
            };
            ZonesByLocation   = new[] { RedZone, WhiteZone, BlueZone }.ToDictionary(zone => zone.ZoneLocation);
            StationByLocation = Zones
                                .SelectMany(zone => new[] { zone.LowerStation, zone.UpperStation })
                                .Concat(new Station[] { interceptorStation })
                                .ToDictionary(station => station.StationLocation);
            InterceptorStation = interceptorStation;
        }
コード例 #16
0
 internal SideLightLaserCannon(BatteryPack source, ZoneLocation currentZone) : base(source, currentZone)
 {
 }