public void HouseDeviceOrphanCreatingTest()
        {
            using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
            {
                db.ClearTable(HouseType.TableName);
                db.ClearTable(HouseTypeDevice.TableName);
                var loadTypes          = db.LoadLoadTypes();
                var devices            = new ObservableCollection <RealDevice>();
                var deviceCategories   = new ObservableCollection <DeviceCategory>();
                var timeBasedProfiles  = new ObservableCollection <TimeBasedProfile>();
                var timeLimits         = new ObservableCollection <TimeLimit>();
                var variables          = db.LoadVariables();
                var deviceActionGroups = db.LoadDeviceActionGroups();
                var deviceActions      = db.LoadDeviceActions(timeBasedProfiles,
                                                              devices, loadTypes, deviceActionGroups);
                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);
                HouseType.LoadFromDatabase(houseTypes, db.ConnectionString, devices, deviceCategories, timeBasedProfiles,
                                           timeLimits, loadTypes, trafoDevices, energyStorages, generators, false, locations, deviceActions,
                                           deviceActionGroups, variables);
                (houseTypes.Count).Should().Be(0);
                var housetype = new HouseType("haus1", "blub", 1000, 5, 10, loadTypes[0], db.ConnectionString, 1, 1,
                                              loadTypes[1], false, 0, false, 0, 1, 100, Guid.NewGuid().ToStrGuid());
                housetype.SaveToDB();
                var rd = new RealDevice("test", 1, "bla", null, "name", true, false, db.ConnectionString, Guid.NewGuid().ToStrGuid());
                rd.SaveToDB();
                devices.Add(rd);

                var dt = new TimeLimit("blub", db.ConnectionString, Guid.NewGuid().ToStrGuid());
                timeLimits.Add(dt);
                dt.SaveToDB();
                var tp = new TimeBasedProfile("blub", null, db.ConnectionString, TimeProfileType.Relative,
                                              "fake", Guid.NewGuid().ToStrGuid());
                timeBasedProfiles.Add(tp);
                tp.SaveToDB();
                housetype.AddHouseTypeDevice(rd, dt, tp, 1, loadTypes[0], locations[0], 0, VariableCondition.Equal,
                                             variables[0]);
                houseTypes.Clear();
                HouseType.LoadFromDatabase(houseTypes, db.ConnectionString, devices, deviceCategories, timeBasedProfiles,
                                           timeLimits, loadTypes, trafoDevices, energyStorages, generators, false, locations, deviceActions,
                                           deviceActionGroups, variables);
                (houseTypes.Count).Should().Be(1);
                var house3 = houseTypes[0];
                (house3.HouseDevices.Count).Should().Be(1);
                db.ClearTable(HouseType.TableName);
                houseTypes.Clear();
                HouseType.LoadFromDatabase(houseTypes, db.ConnectionString, devices, deviceCategories, timeBasedProfiles,
                                           timeLimits, loadTypes, trafoDevices, energyStorages, generators, false, locations, deviceActions,
                                           deviceActionGroups, variables);
                (houseTypes.Count).Should().Be(0);

                db.Cleanup();
            }
        }
        public void HouseLoadCreationAndSaveTest()
        {
            using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
            {
                Logger.Threshold = Severity.Warning;
                db.ClearTable(HouseType.TableName);
                db.ClearTable(HouseTypeDevice.TableName);
                var devices           = new ObservableCollection <RealDevice>();
                var deviceCategories  = new ObservableCollection <DeviceCategory>();
                var timeBasedProfiles = new ObservableCollection <TimeBasedProfile>();
                var timeLimits        = new ObservableCollection <TimeLimit>();
                var variables         = db.LoadVariables();
                var loadTypes         = db.LoadLoadTypes();
                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 dt = new TimeLimit("blub", db.ConnectionString, Guid.NewGuid().ToStrGuid());
                dt.SaveToDB();
                timeLimits.Add(dt);
                var rd = new RealDevice("blub", 1, string.Empty, null, string.Empty, true, false, db.ConnectionString, Guid.NewGuid().ToStrGuid());
                rd.SaveToDB();
                devices.Add(rd);
                var tbp = new TimeBasedProfile("blub", null, db.ConnectionString, TimeProfileType.Relative,
                                               "fake", Guid.NewGuid().ToStrGuid());
                tbp.SaveToDB();
                timeBasedProfiles.Add(tbp);
                var tempP = new TemperatureProfile("blub", null, string.Empty, db.ConnectionString, Guid.NewGuid().ToStrGuid());
                tempP.SaveToDB();
                var houseTypes = new ObservableCollection <HouseType>();
                HouseType.LoadFromDatabase(houseTypes, db.ConnectionString, devices, deviceCategories, timeBasedProfiles,
                                           timeLimits, loadTypes, trafoDevices, energyStorages, generators, false, locations, deviceActions,
                                           deviceActionGroups, variables);
                (houseTypes.Count).Should().Be(0);
                var housetype = new HouseType("haus1", "blub", 1000, 5, 10, loadTypes[0], db.ConnectionString, 1, 1,
                                              loadTypes[1], false, 0, false, 0, 1, 100, Guid.NewGuid().ToStrGuid());
                housetype.SaveToDB();
                housetype.AddHouseTypeDevice(rd, dt, tbp, 1, loadTypes[0], locations[0], 0, VariableCondition.Equal,
                                             variables[0]);
                HouseType.LoadFromDatabase(houseTypes, db.ConnectionString, devices, deviceCategories, timeBasedProfiles,
                                           timeLimits, loadTypes, trafoDevices, energyStorages, generators, false, locations, deviceActions,
                                           deviceActionGroups, variables);
                (houseTypes.Count).Should().Be(1);
                (houseTypes[0].HouseDevices.Count).Should().Be(1);
                var house2 = houseTypes[0];
                (house2.Name).Should().Be("haus1");
                (house2.Description).Should().Be("blub");
                db.Cleanup();
            }
        }
Пример #3
0
 public void TimeLimitBoolEntryLoadCreationAndSaveTest()
 {
     using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
     {
         db.ClearTable(TimeLimit.TableName);
         db.ClearTable(TimeLimitEntry.TableName);
         var timeLimits        = new ObservableCollection <TimeLimit>();
         var dateBasedProfiles = db.LoadDateBasedProfiles();
         TimeLimit.LoadFromDatabase(timeLimits, dateBasedProfiles, db.ConnectionString, false);
         (timeLimits.Count).Should().Be(0);
         var dt = new TimeLimit("hey", db.ConnectionString, Guid.NewGuid().ToStrGuid());
         dt.SaveToDB();
         TimeLimit.LoadFromDatabase(timeLimits, dateBasedProfiles, db.ConnectionString, false);
         (timeLimits.Count).Should().Be(1);
         var dtl = timeLimits[0];
         (dtl.Name).Should().Be("hey");
         dt.DeleteFromDB();
         timeLimits.Clear();
         TimeLimit.LoadFromDatabase(timeLimits, dateBasedProfiles, db.ConnectionString, false);
         (timeLimits.Count).Should().Be(0);
         var dt2 = new TimeLimit("hey2", db.ConnectionString, Guid.NewGuid().ToStrGuid());
         dt2.SaveToDB();
         var dtbe = dt2.AddTimeLimitEntry(null, dateBasedProfiles);
         (dt2.RootEntry).Should().Be(dtbe);
         var dtbe2 = dt2.AddTimeLimitEntry(dtbe, dateBasedProfiles);
         (dt2.RootEntry?.Subentries.Count).Should().Be(1);
         dt2.SaveToDB();
         (dt2.TimeLimitEntries.Count).Should().Be(2);
         timeLimits.Clear();
         TimeLimit.LoadFromDatabase(timeLimits, dateBasedProfiles, db.ConnectionString, false);
         (timeLimits[0].TimeLimitEntries.Count).Should().Be(2);
         (timeLimits[0].RootEntry?.ToString()).Should().Be(dtbe.ToString());
         (timeLimits[0].RootEntry?.Subentries.Count).Should().Be(1);
         (timeLimits[0].RootEntry?.Subentries[0].ToString()).Should().Be(dtbe2.ToString());
         db.Cleanup();
     }
 }
Пример #4
0
 public void TimeLimitLoadCreationAndSaveTest()
 {
     using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
     {
         db.ClearTable(TimeLimit.TableName);
         db.ClearTable(TimeLimitEntry.TableName);
         var timeLimits        = new ObservableCollection <TimeLimit>();
         var dateBasedProfiles = db.LoadDateBasedProfiles();
         TimeLimit.LoadFromDatabase(timeLimits, dateBasedProfiles, db.ConnectionString, false);
         (timeLimits.Count).Should().Be(0);
         var dt = new TimeLimit("hey", db.ConnectionString, Guid.NewGuid().ToStrGuid());
         dt.SaveToDB();
         TimeLimit.LoadFromDatabase(timeLimits, dateBasedProfiles, db.ConnectionString, false);
         (timeLimits.Count).Should().Be(1);
         var dtl = timeLimits[0];
         (dtl.Name).Should().Be("hey");
         (dtl.TimeLimitEntries.Count).Should().Be(0);
         dt.DeleteFromDB();
         timeLimits.Clear();
         TimeLimit.LoadFromDatabase(timeLimits, dateBasedProfiles, db.ConnectionString, false);
         (timeLimits.Count).Should().Be(0);
         var dt2 = new TimeLimit("hey2", db.ConnectionString, Guid.NewGuid().ToStrGuid());
         dt2.SaveToDB();
         var start = new DateTime(2013, 1, 1);
         var end   = new DateTime(2013, 2, 1);
         dt2.AddTimeLimitEntry(null, start, end, PermissionMode.LightControlled, 1, 1, true, true, true, true, true,
                               true, true, 1, 1, 1, 1, 1, 1, 2, true, true, AnyAllTimeLimitCondition.Any, start, end, -1, 0, 0, false,
                               false, false, false, 5, false, dateBasedProfiles, 0, 0, 0);
         dt2.SaveToDB();
         (dt2.TimeLimitEntries.Count).Should().Be(1);
         timeLimits.Clear();
         TimeLimit.LoadFromDatabase(timeLimits, dateBasedProfiles, db.ConnectionString, false);
         (timeLimits[0].TimeLimitEntries.Count).Should().Be(1);
         db.Cleanup();
     }
 }
        public void GetOneYearArrayTest()
        {
            using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
            {
                db.ClearTable(TimeLimit.TableName);
                db.ClearTable(TimeLimitEntry.TableName);
                var temperaturProfiles = db.LoadTemperatureProfiles();
                var timeLimits         = new ObservableCollection <TimeLimit>();
                var dateBasedProfiles  = db.LoadDateBasedProfiles();
                TimeLimit.LoadFromDatabase(timeLimits, dateBasedProfiles, db.ConnectionString, false);
                var geographicLocations = db.LoadGeographicLocations(out _,
                                                                     timeLimits);
                (timeLimits.Count).Should().Be(0);
                var dt = new TimeLimit("hey", db.ConnectionString, Guid.NewGuid().ToStrGuid());
                dt.SaveToDB();

                var dtbe = dt.AddTimeLimitEntry(null, dateBasedProfiles);
                dtbe.AnyAll = AnyAllTimeLimitCondition.Any;
                var dtbe2 = dt.AddTimeLimitEntry(dtbe, dateBasedProfiles);
                dtbe2.RepeaterType      = PermissionMode.EveryXDay;
                dtbe2.DailyDayCount     = 1;
                dtbe2.StartTimeTimeSpan = new TimeSpan(6, 0, 0);
                dtbe2.EndTimeTimeSpan   = new TimeSpan(12, 0, 0);
                var dtbe3 = dt.AddTimeLimitEntry(dtbe, dateBasedProfiles);
                dtbe3.DailyDayCount     = 1;
                dtbe3.StartTimeTimeSpan = new TimeSpan(13, 0, 0);
                dtbe3.EndTimeTimeSpan   = new TimeSpan(14, 0, 0);

                dtbe.Subentries.Add(dtbe2);
                dtbe.Subentries.Add(dtbe2);
                var r   = new Random();
                var vac = new Vacation("vac", null, db.ConnectionString, 1, 99, CreationType.ManuallyCreated, Guid.NewGuid().ToStrGuid());
                vac.SaveToDB();
                vac.AddVacationTime(new DateTime(2014, 3, 1), new DateTime(2014, 5, 1), VacationType.GoAway);
                var timeframes = vac.VacationTimeframes();
                var br         = dtbe.GetOneYearArray(new TimeSpan(1, 0, 0), new DateTime(2014, 1, 1), new DateTime(2014, 2, 1),
                                                      temperaturProfiles[0], geographicLocations[0], r, timeframes, "test", out _, 0, 0, 0, 0);
                for (var i = 0; i < 24; i++)
                {
                    Logger.Info(i + ":" + br[i]);
                }
                db.Cleanup();
            }
        }