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(); } }
public void TimeLimitEntryTests1() { 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 var holidays, timeLimits); (timeLimits.Count).Should().Be(0); var startTime = new DateTime(1900, 1, 1, 6, 0, 0); var endTime = new DateTime(1900, 1, 1, 10, 0, 0); var dt = new TimeLimitEntry(null, -1, startTime, endTime, PermissionMode.EveryWorkday, 1, 1, true, true, true, true, true, true, true, 1, 1, 1, 1, 1, -100, 100, true, false, null, AnyAllTimeLimitCondition.Any, startTime, endTime, null, 0, 0, false, false, false, false, 5, false, dateBasedProfiles, db.ConnectionString, 0, 0, 0, Guid.NewGuid().ToStrGuid()); var stepsize = new TimeSpan(1, 0, 0); var arraystart = new DateTime(2013, 12, 28, 5, 0, 0); var arrayend = new DateTime(2014, 1, 3, 9, 0, 0); geographicLocations[0].AddHoliday(holidays[0]); geographicLocations[0].AddHoliday(holidays[1]); geographicLocations[0].Holidays.Count.Should().BeGreaterThan(1); Logger.Info("Holidays:" + geographicLocations[0].Holidays.Count); var r = new Random(); var timeframes = new List <VacationTimeframe>(); var br = dt.GetOneYearArray(stepsize, arraystart, arrayend, temperaturProfiles[0], geographicLocations[0], r, timeframes, "test", out _, 0, 0, 0, 0); var curr = arraystart; for (var i = 0; i < br.Length; i++) { Logger.Info(curr.ToLongDateString() + " " + curr.ToShortTimeString() + " :" + br[i]); curr = curr.Add(stepsize); } db.Cleanup(); } }
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(); } }
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(); } }
private List <LoadingEntry> GetLoadingActions(bool ignoreMissingTables) { var actions = new List <LoadingEntry> { new LoadingEntry("Loadtypes", () => VLoadType.LoadFromDatabase(LoadTypes.MyItems, ConnectionString, ignoreMissingTables), LoadTypes), new LoadingEntry("Holidays", () => Holiday.LoadFromDatabase(Holidays.MyItems, ConnectionString, ignoreMissingTables), Holidays), new LoadingEntry("Variables", () => Variable.LoadFromDatabase(Variables.It, ConnectionString, ignoreMissingTables), Variables), new LoadingEntry("Date Based Profiles", () => DateBasedProfile.LoadFromDatabase(DateBasedProfiles.MyItems, ConnectionString, ignoreMissingTables), DateBasedProfiles), new LoadingEntry("Vacations", () => Vacation.LoadFromDatabase(Vacations.MyItems, ConnectionString, ignoreMissingTables), Vacations), new LoadingEntry("Desires", () => Desire.LoadFromDatabase(Desires.MyItems, ConnectionString, ignoreMissingTables), Desires), new LoadingEntry("Time Profiles", () => TimeBasedProfile.LoadFromDatabase(Timeprofiles.MyItems, ConnectionString, ignoreMissingTables), Timeprofiles), new LoadingEntry("Temperature Profiles", () => TemperatureProfile.LoadFromDatabase(TemperatureProfiles.MyItems, ConnectionString, ignoreMissingTables), TemperatureProfiles), new LoadingEntry("Generators", () => Generator.LoadFromDatabase(Generators.MyItems, ConnectionString, LoadTypes.MyItems, DateBasedProfiles.MyItems, ignoreMissingTables), Generators), new LoadingEntry("Energy Storages", () => EnergyStorage.LoadFromDatabase(EnergyStorages.MyItems, ConnectionString, LoadTypes.MyItems, Variables.MyItems, ignoreMissingTables), EnergyStorages), new LoadingEntry("Transformation Devices", () => TransformationDevice.LoadFromDatabase(TransformationDevices.MyItems, ConnectionString, LoadTypes.MyItems, Variables.MyItems, ignoreMissingTables), TransformationDevices), new LoadingEntry("Device Categories", () => { DeviceCategory.LoadFromDatabase(DeviceCategories.MyItems, out _dcnone, ConnectionString, RealDevices.MyItems, ignoreMissingTables); DeviceCategories.DeviceCategoryNone = _dcnone; }, DeviceCategories), new LoadingEntry("Real Devices", () => RealDevice.LoadFromDatabase(RealDevices.MyItems, DeviceCategories.MyItems, DeviceCategories.DeviceCategoryNone, ConnectionString, LoadTypes.MyItems, Timeprofiles.MyItems, ignoreMissingTables), RealDevices), new LoadingEntry("Device Action Groups", () => DeviceActionGroup.LoadFromDatabase(DeviceActionGroups.MyItems, ConnectionString, ignoreMissingTables), DeviceActionGroups), new LoadingEntry("Device Actions", () => DeviceAction.LoadFromDatabase(DeviceActions.MyItems, ConnectionString, Timeprofiles.MyItems, RealDevices.MyItems, LoadTypes.MyItems, DeviceActionGroups.MyItems, ignoreMissingTables), DeviceActions), new LoadingEntry("Device Tagging Sets", () => DeviceTaggingSet.LoadFromDatabase(DeviceTaggingSets.MyItems, ConnectionString, ignoreMissingTables, RealDevices.MyItems, LoadTypes.It), DeviceTaggingSets), new LoadingEntry("Persons", () => Person.LoadFromDatabase(Persons.MyItems, ConnectionString, ignoreMissingTables), Persons), new LoadingEntry("Locations", () => Location.LoadFromDatabase(Locations.MyItems, ConnectionString, RealDevices.MyItems, DeviceCategories.MyItems, LoadTypes.MyItems, ignoreMissingTables), Locations), new LoadingEntry("Time Limits", () => TimeLimit.LoadFromDatabase(TimeLimits.MyItems, DateBasedProfiles.MyItems, ConnectionString, ignoreMissingTables), TimeLimits), new LoadingEntry("Geographic Locations", () => GeographicLocation.LoadFromDatabase(GeographicLocations.MyItems, ConnectionString, Holidays.MyItems, TimeLimits.MyItems, ignoreMissingTables), GeographicLocations), new LoadingEntry("Subaffordances", () => SubAffordance.LoadFromDatabase(SubAffordances.MyItems, ConnectionString, Desires.MyItems, ignoreMissingTables, Locations.It, Variables.It), SubAffordances), new LoadingEntry("Affordances", () => Affordance.LoadFromDatabase(Affordances.MyItems, ConnectionString, Timeprofiles.MyItems, DeviceCategories.MyItems, RealDevices.MyItems, Desires.MyItems, SubAffordances.MyItems, LoadTypes.MyItems, TimeLimits.MyItems, DeviceActions.MyItems, DeviceActionGroups.MyItems, Locations.It, ignoreMissingTables, Variables.It), Affordances), new LoadingEntry("Affordance Tagging Sets", () => AffordanceTaggingSet.LoadFromDatabase(AffordanceTaggingSets.MyItems, ConnectionString, ignoreMissingTables, Affordances.MyItems, LoadTypes.It), AffordanceTaggingSets), new LoadingEntry("Trait Tags", () => TraitTag.LoadFromDatabase(TraitTags.MyItems, ConnectionString, ignoreMissingTables), TraitTags), new LoadingEntry("Household Traits", () => HouseholdTrait.LoadFromDatabase(HouseholdTraits.MyItems, ConnectionString, Locations.MyItems, Affordances.MyItems, RealDevices.MyItems, DeviceCategories.MyItems, Timeprofiles.MyItems, LoadTypes.MyItems, TimeLimits.MyItems, Desires.MyItems, DeviceActions.It, DeviceActionGroups.It, TraitTags.It, ignoreMissingTables, Variables.It), HouseholdTraits), new LoadingEntry("Device Selections", () => DeviceSelection.LoadFromDatabase(DeviceSelections.MyItems, ConnectionString, DeviceCategories.MyItems, RealDevices.MyItems, DeviceActions.It, DeviceActionGroups.It, ignoreMissingTables), DeviceSelections), new LoadingEntry("Household Tags", () => HouseholdTag.LoadFromDatabase(HouseholdTags.It, ConnectionString, ignoreMissingTables), HouseholdTags), new LoadingEntry("Modular Households", () => ModularHousehold.LoadFromDatabase(ModularHouseholds.MyItems, ConnectionString, HouseholdTraits.MyItems, DeviceSelections.MyItems, ignoreMissingTables, Persons.MyItems, Vacations.It, HouseholdTags.It, TraitTags.It), ModularHouseholds), new LoadingEntry("Household Templates", () => HouseholdTemplate.LoadFromDatabase(HouseholdTemplates.MyItems, ConnectionString, HouseholdTraits.MyItems, ignoreMissingTables, Persons.MyItems, TraitTags.It, Vacations.It, HouseholdTags.It, DateBasedProfiles.It), HouseholdTemplates), new LoadingEntry("Template Persons", () => TemplatePerson.LoadFromDatabase(TemplatePersons.It, ConnectionString, HouseholdTraits.It, ignoreMissingTables, ModularHouseholds.It, Persons.It), TemplatePersons), new LoadingEntry("Household Plans", () => HouseholdPlan.LoadFromDatabase(HouseholdPlans.MyItems, ConnectionString, ignoreMissingTables, Persons.MyItems, AffordanceTaggingSets.MyItems, ModularHouseholds.MyItems), HouseholdPlans), new LoadingEntry("House Types", () => HouseType.LoadFromDatabase(HouseTypes.MyItems, ConnectionString, RealDevices.MyItems, DeviceCategories.MyItems, Timeprofiles.MyItems, TimeLimits.MyItems, LoadTypes.MyItems, TransformationDevices.MyItems, EnergyStorages.MyItems, Generators.MyItems, ignoreMissingTables, Locations.MyItems, DeviceActions.It, DeviceActionGroups.It, Variables.It), HouseTypes), new LoadingEntry("Transportation Device Categories", () => TransportationDeviceCategory.LoadFromDatabase(TransportationDeviceCategories.It, ConnectionString, ignoreMissingTables), TransportationDeviceCategories), new LoadingEntry("Sites", () => Site.LoadFromDatabase(Sites.It, ConnectionString, ignoreMissingTables, Locations.It), Sites), new LoadingEntry("Transportation Devices", () => TransportationDevice.LoadFromDatabase(TransportationDevices.It, ConnectionString, ignoreMissingTables, TransportationDeviceCategories.It, LoadTypes.It), TransportationDevices), new LoadingEntry("Transportation Device Sets", () => TransportationDeviceSet.LoadFromDatabase(TransportationDeviceSets.It, ConnectionString, ignoreMissingTables, TransportationDevices.It), TransportationDeviceSets), new LoadingEntry("Travel Routes", () => TravelRoute.LoadFromDatabase(TravelRoutes.It, ConnectionString, ignoreMissingTables, TransportationDeviceCategories.It, Sites.It), TravelRoutes), new LoadingEntry("Travel Route Sets", () => TravelRouteSet.LoadFromDatabase(TravelRouteSets.It, ConnectionString, ignoreMissingTables, TravelRoutes.It), TravelRouteSets), new LoadingEntry("Charging Station Sets", () => ChargingStationSet.LoadFromDatabase(ChargingStationSets.It, ConnectionString, ignoreMissingTables, LoadTypes.It, TransportationDeviceCategories.It, Sites.It), ChargingStationSets), new LoadingEntry("Houses", () => House.LoadFromDatabase(Houses.MyItems, ConnectionString, TemperatureProfiles.MyItems, GeographicLocations.MyItems, HouseTypes.MyItems, ModularHouseholds.MyItems, ChargingStationSets.MyItems, TransportationDeviceSets.MyItems, TravelRouteSets.MyItems, ignoreMissingTables), Houses), new LoadingEntry("Settlements", () => Settlement.LoadFromDatabase(Settlements.MyItems, ConnectionString, TemperatureProfiles.MyItems, GeographicLocations.MyItems, ModularHouseholds.MyItems, Houses.MyItems, ignoreMissingTables), Settlements), new LoadingEntry("Settlement Templates", () => SettlementTemplate.LoadFromDatabase(SettlementTemplates.It, ConnectionString, HouseholdTemplates.It, HouseTypes.It, ignoreMissingTables, TemperatureProfiles.It, GeographicLocations.It, HouseholdTags.It, HouseholdTraits.It), SettlementTemplates), new LoadingEntry("Settings", () => MyGeneralConfig = GeneralConfig.LoadFromDatabase(ConnectionString, ignoreMissingTables), null), new LoadingEntry("Calculation Outcomes", () => CalculationOutcome.LoadFromDatabase(CalculationOutcomes.MyItems, ConnectionString, ignoreMissingTables), CalculationOutcomes) }; return(actions); }