public void HouseTypeLoadCreationAndSave2Test()
        {
            using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
            {
                db.ClearTable(House.TableName);
                db.ClearTable(HouseTypeDevice.TableName);
                db.ClearTable(HouseHousehold.TableName);
                var houses = new CategoryDBBase <House>("blub");
                houses.CreateNewItem(db.ConnectionString);
                var devices           = new ObservableCollection <RealDevice>();
                var deviceCategories  = new ObservableCollection <DeviceCategory>();
                var timeBasedProfiles = new ObservableCollection <TimeBasedProfile>();
                var timeLimits        = new ObservableCollection <TimeLimit>();
                var loadTypes         = db.LoadLoadTypes();
                var variables         = db.LoadVariables();
                var energyStorages    = db.LoadEnergyStorages(loadTypes, variables);
                var trafoDevices      = db.LoadTransformationDevices(loadTypes,
                                                                     variables);

                var dateprofiles       = db.LoadDateBasedProfiles();
                var generators         = db.LoadGenerators(loadTypes, dateprofiles);
                var houseTypes         = new ObservableCollection <HouseType>();
                var locations          = db.LoadLocations(devices, deviceCategories, loadTypes);
                var deviceActionGroups = db.LoadDeviceActionGroups();
                var deviceActions      = db.LoadDeviceActions(timeBasedProfiles,
                                                              devices, loadTypes, deviceActionGroups);
                HouseType.LoadFromDatabase(houseTypes, db.ConnectionString, devices, deviceCategories, timeBasedProfiles,
                                           timeLimits, loadTypes, trafoDevices, energyStorages, generators, false, locations, deviceActions,
                                           deviceActionGroups, variables);
                houseTypes.Count.Should().BeGreaterOrEqualTo(1);
                db.Cleanup();
            }
        }
 public void MakeNewDesireTest()
 {
     using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
     {
         var cat = new CategoryDBBase <Desire>("Desires");
         cat.CreateNewItem(db.ConnectionString);
         db.Cleanup();
     }
 }
Exemple #3
0
        public void HouseholdTemplateTest2()
        {
            using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
            {
                db.ClearTable(HouseholdTemplate.TableName);
                db.ClearTable(HHTemplateEntry.TableName);
                db.ClearTable(HHTemplateEntryPerson.TableName);
                var cat = new CategoryDBBase <HouseholdTemplate>("Household Generator");

                var timeBasedProfiles = db.LoadTimeBasedProfiles();
                var desires           = db.LoadDesires();
                var persons           = db.LoadPersons();

                var realDevices =
                    db.LoadRealDevices(out var deviceCategories, out _, out var loadTypes, timeBasedProfiles);
                var dateBasedProfiles  = db.LoadDateBasedProfiles();
                var timeLimits         = db.LoadTimeLimits(dateBasedProfiles);
                var deviceActionGroups = db.LoadDeviceActionGroups();
                var deviceActions      =
                    db.LoadDeviceActions(timeBasedProfiles, realDevices, loadTypes, deviceActionGroups);
                var locations   = db.LoadLocations(realDevices, deviceCategories, loadTypes);
                var variables   = db.LoadVariables();
                var affordances = db.LoadAffordances(timeBasedProfiles, out _,
                                                     deviceCategories, realDevices, desires, loadTypes, timeLimits, deviceActions, deviceActionGroups,
                                                     locations, variables);

                var traittags = db.LoadTraitTags();
                var traits    = db.LoadHouseholdTraits(locations, affordances, realDevices,
                                                       deviceCategories, timeBasedProfiles, loadTypes, timeLimits, desires, deviceActions, deviceActionGroups,
                                                       traittags, variables);
                var vacations         = db.LoadVacations();
                var templateTags      = db.LoadHouseholdTags();
                var datebasedProfiles = db.LoadDateBasedProfiles();
                HouseholdTemplate.LoadFromDatabase(cat.It, db.ConnectionString, traits, false, persons, traittags,
                                                   vacations,
                                                   templateTags, datebasedProfiles);
                (cat.MyItems.Count).Should().Be(0);

                var gen   = cat.CreateNewItem(db.ConnectionString);
                var entry = gen.AddEntry(traittags[0], 0, 10);
                entry.AddPerson(persons[0]);
                cat.SaveToDB();
                var generators = new ObservableCollection <HouseholdTemplate>();
                HouseholdTemplate.LoadFromDatabase(generators, db.ConnectionString, traits, false, persons, traittags,
                                                   vacations, templateTags, datebasedProfiles);
                (generators.Count).Should().Be(1);
                (generators[0].Entries.Count).Should().Be(1);
                (generators[0].Entries[0].Persons.Count).Should().Be(1);

                db.Cleanup();
            }
        }
        public void HouseLoadCreationAndSave2Test()
        {
            Config.ShowDeleteMessages = false;
            Logger.Threshold          = Severity.Error;
            using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
            {
                db.ClearTable(House.TableName);
                db.ClearTable(HouseTypeDevice.TableName);
                db.ClearTable(HouseHousehold.TableName);
                var houses = new CategoryDBBase <House>("blub");
                houses.CreateNewItem(db.ConnectionString);
                var houses1            = new ObservableCollection <House>();
                var devices            = new ObservableCollection <RealDevice>();
                var deviceCategories   = new ObservableCollection <DeviceCategory>();
                var timeBasedProfiles  = new ObservableCollection <TimeBasedProfile>();
                var timeLimits         = new ObservableCollection <TimeLimit>();
                var persons            = new ObservableCollection <Person>();
                var temperaturProfiles = new ObservableCollection <TemperatureProfile>();
                var loadTypes          = db.LoadLoadTypes();
                var variables          = db.LoadVariables();
                var geoLocs            = db.LoadGeographicLocations(out _, timeLimits);
                var energyStorages     = db.LoadEnergyStorages(loadTypes, variables);
                var trafoDevices       = db.LoadTransformationDevices(loadTypes,
                                                                      variables);

                var dateprofiles       = db.LoadDateBasedProfiles();
                var generators         = db.LoadGenerators(loadTypes, dateprofiles);
                var locations          = db.LoadLocations(devices, deviceCategories, loadTypes);
                var deviceActionGroups = db.LoadDeviceActionGroups();
                var deviceActions      = db.LoadDeviceActions(timeBasedProfiles, devices,
                                                              loadTypes, deviceActionGroups);
                var houseTypes = db.LoadHouseTypes(devices, deviceCategories, timeBasedProfiles,
                                                   timeLimits, loadTypes, trafoDevices, energyStorages, generators, locations, deviceActions,
                                                   deviceActionGroups, variables);
                var householdTraits   = new ObservableCollection <HouseholdTrait>();
                var deviceSelections  = new ObservableCollection <DeviceSelection>();
                var vacations         = db.LoadVacations();
                var householdTags     = db.LoadHouseholdTags();
                var traitTags         = db.LoadTraitTags();
                var modularHouseholds = db.LoadModularHouseholds(householdTraits,
                                                                 deviceSelections, persons, vacations, householdTags, traitTags);
                db.LoadTransportation(locations, out var transportationDeviceSets, out var travelRouteSets,
                                      out var _,
                                      out var _, loadTypes, out var chargingStationSets);
                House.LoadFromDatabase(houses1, db.ConnectionString,
                                       temperaturProfiles, geoLocs, houseTypes,
                                       modularHouseholds, chargingStationSets, transportationDeviceSets, travelRouteSets, false);
                (houses1.Count).Should().Be(1);
                db.Cleanup();
            }
        }
Exemple #5
0
 public void TraitTagTest()
 {
     using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
     {
         db.ClearTable(TraitTag.TableName);
         var cat = new CategoryDBBase <TraitTag>("Household Trait Tags");
         TraitTag.LoadFromDatabase(cat.It, db.ConnectionString, false);
         (cat.MyItems.Count).Should().Be(0);
         cat.CreateNewItem(db.ConnectionString);
         cat.SaveToDB();
         var tags = new ObservableCollection <TraitTag>();
         TraitTag.LoadFromDatabase(tags, db.ConnectionString, false);
         (tags.Count).Should().Be(1);
         db.Cleanup();
     }
 }
 public void DesireTest()
 {
     using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
     {
         db.ClearTable(Desire.TableName);
         var cat = new CategoryDBBase <Desire>("Desires");
         Desire.LoadFromDatabase(cat.MyItems, db.ConnectionString, false);
         (cat.MyItems.Count).Should().Be(0);
         cat.CreateNewItem(db.ConnectionString);
         cat.SaveToDB();
         var desires = new ObservableCollection <Desire>();
         Desire.LoadFromDatabase(desires, db.ConnectionString, false);
         (desires.Count).Should().Be(1);
         db.Cleanup();
     }
 }
        public void TemplatePersonTest()
        {
            using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
            {
                db.ClearTable(TemplatePerson.TableName);
                db.ClearTable(TemplatePersonTrait.TableName);
                var cat = new CategoryDBBase <TemplatePerson>("TemplatePersons");
                var timeBasedProfiles = db.LoadTimeBasedProfiles();
                var devices           = db.LoadRealDevices(out ObservableCollection <DeviceCategory> deviceCategories, out ObservableCollection <VLoadType> loadTypes,
                                                           timeBasedProfiles);
                var locations          = db.LoadLocations(devices, deviceCategories, loadTypes);
                var desires            = db.LoadDesires();
                var dateBasedProfiles  = db.LoadDateBasedProfiles();
                var timeLimits         = db.LoadTimeLimits(dateBasedProfiles);
                var deviceActionGroups = db.LoadDeviceActionGroups();
                var deviceActions      = db.LoadDeviceActions(timeBasedProfiles, devices,
                                                              loadTypes, deviceActionGroups);
                var variables   = db.LoadVariables();
                var affordances = db.LoadAffordances(timeBasedProfiles, out _,
                                                     deviceCategories, devices, desires, loadTypes, timeLimits, deviceActions, deviceActionGroups, locations,
                                                     variables);
                var traitTags = db.LoadTraitTags();
                var traits    = db.LoadHouseholdTraits(locations, affordances, devices,
                                                       deviceCategories, timeBasedProfiles, loadTypes, timeLimits, desires, deviceActions, deviceActionGroups,
                                                       traitTags, variables);
                var selections = db.LoadDeviceSelections(deviceCategories, devices,
                                                         deviceActions, deviceActionGroups);
                var persons   = db.LoadPersons();
                var vacations = db.LoadVacations();
                var tags      = db.LoadHouseholdTags();
                var chhs      = db.LoadModularHouseholds(traits, selections, persons, vacations, tags, traitTags);

                TemplatePerson.LoadFromDatabase(cat.It, db.ConnectionString, traits, false, chhs, persons);
                (cat.MyItems.Count).Should().Be(0);
                cat.CreateNewItem(db.ConnectionString);
                cat.SaveToDB();
                var templatePerson = new ObservableCollection <TemplatePerson>();
                TemplatePerson.LoadFromDatabase(templatePerson, db.ConnectionString, traits, false, chhs, persons);
                (templatePerson.Count).Should().Be(1);
                db.Cleanup();
            }
        }
Exemple #8
0
 public void RealDeviceTest()
 {
     using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
     {
         db.ClearTable(RealDevice.TableName);
         db.ClearTable(RealDeviceLoadType.TableName);
         var rdcat      = new CategoryDBBase <RealDevice>("blub");
         var rd         = rdcat.CreateNewItem(db.ConnectionString);
         var profiles   = db.LoadTimeBasedProfiles();
         var alldevices = db.LoadRealDevices(out var deviceCategories, out var dcNone,
                                             out var loadTypes, profiles);
         (alldevices.Count).Should().Be(1);
         alldevices.Clear();
         rdcat.DeleteItem(rd);
         RealDevice.LoadFromDatabase(alldevices, deviceCategories, dcNone, db.ConnectionString, loadTypes, profiles,
                                     false);
         (alldevices.Count).Should().Be(0);
         db.Cleanup();
     }
 }
 public void LocationTest()
 {
     using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
     {
         db.ClearTable(Location.TableName);
         var cat      = new CategoryDBBase <Location>("Locations");
         var profiles = db.LoadTimeBasedProfiles();
         var devices  = db.LoadRealDevices(out var deviceCategories, out var loadTypes, profiles);
         Location.LoadFromDatabase(cat.MyItems, db.ConnectionString, devices, deviceCategories, loadTypes, false);
         (cat.MyItems.Count).Should().Be(0);
         var loc = cat.CreateNewItem(db.ConnectionString);
         cat.SaveToDB();
         loc.AddDevice(devices[0]);
         loc.SaveToDB();
         var locations = new ObservableCollection <Location>();
         Location.LoadFromDatabase(locations, db.ConnectionString, devices, deviceCategories, loadTypes, false);
         (locations.Count).Should().Be(1);
         (locations[0].LocationDevices.Count).Should().Be(1);
         db.Cleanup();
     }
 }
Exemple #10
0
        public Simulator([NotNull] string connectionString, bool ignoreMissingTables = false)
        {
            ConnectionString = connectionString;
            MyGeneralConfig  = new GeneralConfig(ConnectionString);
            CategoryOrDevice.Add("Device");
            CategoryOrDevice.Add("Device Category");

            Categories = new ObservableCollection <object>();
            LoadTypes  = new CategoryDBBase <VLoadType>("Load types");
            Categories.Add(LoadTypes);
            Holidays = new CategoryDBBase <Holiday>("Holidays");
            Categories.Add(Holidays);
            GeographicLocations = new CategoryDBBase <GeographicLocation>("Geographic Locations / Cities");
            Categories.Add(GeographicLocations);
            TemperatureProfiles = new CategoryDBBase <TemperatureProfile>("Temperature Profiles");
            Categories.Add(TemperatureProfiles);
            DateBasedProfiles = new CategoryDBBase <DateBasedProfile>("Date Based Profiles");
            Categories.Add(DateBasedProfiles);
            Vacations = new CategoryDBBase <Vacation>("Vacations");
            Categories.Add(Vacations);
            Desires = new CategoryDBBase <Desire>("Desires");
            Categories.Add(Desires);
            Locations = new CategoryDBBase <Location>("Locations");
            Categories.Add(Locations);
            Persons = new CategoryDBBase <Person>("Persons");
            Categories.Add(Persons);
            DeviceCategories = new CategoryDeviceCategory();
            Categories.Add(DeviceCategories);
            RealDevices = new CategoryDBBase <RealDevice>("Devices");
            Categories.Add(RealDevices);
            DeviceActions = new CategoryDBBase <DeviceAction>("Device Actions");
            Categories.Add(DeviceActions);
            DeviceActionGroups = new CategoryDBBase <DeviceActionGroup>("Device Action Groups");
            Categories.Add(DeviceActionGroups);
            DeviceTaggingSets = new CategoryDBBase <DeviceTaggingSet>("Device Tagging Set");
            Categories.Add(DeviceTaggingSets);
            Timeprofiles = new CategoryDBBase <TimeBasedProfile>("Time Profiles");
            Categories.Add(Timeprofiles);
            TimeLimits = new CategoryDBBase <TimeLimit>("Time Limits");
            Categories.Add(TimeLimits);
            Variables = new CategoryDBBase <Variable>("Variables");
            Categories.Add(Variables);
            Affordances = new CategoryAffordance("Affordances");
            Categories.Add(Affordances);
            SubAffordances = new CategoryDBBase <SubAffordance>("Sub-Affordances");
            Categories.Add(SubAffordances);
            AffordanceTaggingSets = new CategoryDBBase <AffordanceTaggingSet>("Affordance Tagging Set");
            Categories.Add(AffordanceTaggingSets);
            TraitTags = new CategoryDBBase <TraitTag>("Household Trait Tags");
            Categories.Add(TraitTags);
            HouseholdTraits = new CategoryDBBase <HouseholdTrait>("Household Traits");
            Categories.Add(HouseholdTraits);
            HouseholdTags = new CategoryDBBase <HouseholdTag>("Household Template Tags");
            Categories.Add(HouseholdTags);
            HouseholdTemplates = new CategoryDBBase <HouseholdTemplate>("Household Templates");
            Categories.Add(HouseholdTemplates);
            DeviceSelections = new CategoryDBBase <DeviceSelection>("Device Selections");
            Categories.Add(DeviceSelections);
            TemplatePersons = new CategoryDBBase <TemplatePerson>("Template Persons");
            Categories.Add(TemplatePersons);
            ModularHouseholds = new CategoryDBBase <ModularHousehold>("Modular Households");
            Categories.Add(ModularHouseholds);
            TransformationDevices = new CategoryDBBase <TransformationDevice>("Transformation Devices");
            Categories.Add(TransformationDevices);
            EnergyStorages = new CategoryDBBase <EnergyStorage>("Energy Storages");
            Categories.Add(EnergyStorages);
            Generators = new CategoryDBBase <Generator>("Externally Controlled Generators");
            Categories.Add(Generators);
            HouseTypes = new CategoryDBBase <HouseType>("House Types");
            Categories.Add(HouseTypes);
            Houses = new CategoryDBBase <House>("Houses");
            Categories.Add(Houses);
            HouseholdPlans = new CategoryDBBase <HouseholdPlan>("Household Plans");
            Categories.Add(HouseholdPlans);
            SettlementTemplates = new CategoryDBBase <SettlementTemplate>("Settlement Templates");
            Categories.Add(SettlementTemplates);
            Settlements = new CategorySettlement();
            Categories.Add(Settlements);
            Sites = new CategoryDBBase <Site>("Sites");
            Categories.Add(Sites);

            TransportationDeviceCategories = new CategoryDBBase <TransportationDeviceCategory>("Transportation Device Categories");
            Categories.Add(TransportationDeviceCategories);

            TransportationDevices = new CategoryDBBase <TransportationDevice>("Transportation Devices");
            Categories.Add(TransportationDevices);

            TransportationDeviceSets = new CategoryDBBase <TransportationDeviceSet>("Transportation Devices Sets");
            Categories.Add(TransportationDeviceSets);

            TravelRoutes = new CategoryDBBase <TravelRoute>("Travel Routes");
            Categories.Add(TravelRoutes);

            TravelRouteSets = new CategoryDBBase <TravelRouteSet>("Travel Route Sets");
            Categories.Add(TravelRouteSets);

            ChargingStationSets = new CategoryDBBase <ChargingStationSet>("Charging Station Sets");
            Categories.Add(ChargingStationSets);

            Categories.Add(new OtherCategory("Calculation"));
            Categories.Add(new OtherCategory("Settings"));
            CalculationOutcomes = new CategoryOutcome();
            Categories.Add(CalculationOutcomes);
            try {
                if (!ignoreMissingTables)
                {
                    DatabaseVersionChecker.CheckVersion(ConnectionString);
                }
                LoadFromDB(ignoreMissingTables);
            }
            catch (Exception e) {
                if (Config.IsInUnitTesting)
                {
                    Logger.Exception(e);
                }

                throw;
            }
            Logger.Info("Loaded the Database");
            foreach (dynamic category in Categories)
            {
                if (category.LoadingNumber == -1)
                {
                    throw new LPGException("Loading of the database failed due to invalid loading number for " +
                                           category.Name + " of " + category.LoadingNumber + ".");
                }
            }
        }