Esempio n. 1
0
        protected override void Run(Simulator sim)
        {
            CheckForUnusedDevices(sim.RealDevices.It, sim.Affordances.It, sim.DeviceActions.It, sim.Locations.It,
                                  sim.HouseholdTraits.It, sim.HouseTypes.It);
            foreach (var device in sim.RealDevices.It)
            {
                BasicChecks(device);
                if (PerformCleanupChecks)
                {
                    ElectricityChecks(device);
                    CheckDeviceActionLoads(sim.DeviceActions.It, device);
                }
            }
            if (PerformCleanupChecks)
            {
                List <RealDevice> devicesWithMissingLt = new List <RealDevice>();
                foreach (var device in sim.RealDevices.It)
                {
                    RealDeviceLoadType electricityLoad = null;
                    RealDeviceLoadType innerLoad       = null;
                    foreach (var load in device.Loads)
                    {
                        if (load.LoadType?.Name == "Electricity")
                        {
                            electricityLoad = load;
                        }

                        if (load.LoadType?.Name?.Contains("Inner") == true)
                        {
                            innerLoad = load;
                        }
                    }

                    if (electricityLoad != null && innerLoad == null)
                    {
                        devicesWithMissingLt.Add(device);
                    }

                    if (devicesWithMissingLt.Count > 10)
                    {
                        break;
                    }
                }

                if (devicesWithMissingLt.Count > 0)
                {
                    throw new DataIntegrityException("Found devices with electricity that don't have inner heat gains set.", devicesWithMissingLt.Select(x => (BasicElement)x).ToList());
                }
            }
        }
        public void LoadFromDatabaseTest()
        {
            using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
            {
                var loadTypes = db.LoadLoadTypes();
                var rdlt      = new ObservableCollection <RealDeviceLoadType>();
                RealDeviceLoadType.LoadFromDatabase(rdlt, db.ConnectionString, loadTypes, false);
                rdlt.Clear();
                db.ClearTable(RealDeviceLoadType.TableName);

                var newrdlt = new RealDeviceLoadType("bla", 1, loadTypes[0].ID, 1, loadTypes[0], 0.1, 10,
                                                     db.ConnectionString, Guid.NewGuid().ToStrGuid());
                newrdlt.SaveToDB();

                RealDeviceLoadType.LoadFromDatabase(rdlt, db.ConnectionString, loadTypes, false);
                (rdlt.Count).Should().Be(1);
                db.Cleanup();
            }
        }