private void MakeNewImages() { if (LimitPresenter == null) { return; } _calcImage = LimitPresenter.TmpCalcImage; _selectedTemperatureProfile = LimitPresenter.PreviewTemperatureProfile; _geographicLocation = LimitPresenter.PreviewGeographicLocation; if (LimitPresenter.ThisTimeLimit.RootEntry == null) { throw new LPGException("root entry was null"); } _rootEntry = LimitPresenter.ThisTimeLimit.RootEntry; _household = LimitPresenter.PreviewHousehold; TimeLimitPresenter p = null; if (Dispatcher == null || Thread.CurrentThread == Dispatcher.Thread) { p = LimitPresenter; } var t = new Thread(() => UpdatePictures(p)); t.Start(); }
public PermissionLinePresenter([NotNull] Simulator sim, [NotNull] PermissionLine permissionLine, [NotNull] TimeLimitEntry timeEntry, double leftMargin, bool isMinusVisible) { _sim = sim; _permissionLine = permissionLine; Entry = timeEntry; _leftMargin = leftMargin; Logger.Info("Margin: " + _leftMargin); _isMinusVisible = isMinusVisible; PermissionModes = new ObservableCollection <PermissionTuple> { new PermissionTuple(PermissionMode.EveryXDay, "Every x days"), new PermissionTuple(PermissionMode.EveryWorkday, "Every work day"), new PermissionTuple(PermissionMode.EveryXWeeks, "Every x weeks"), new PermissionTuple(PermissionMode.EveryXMonths, "Every x months"), new PermissionTuple(PermissionMode.Yearly, "Yearly"), new PermissionTuple(PermissionMode.EveryDateRange, "In a certain date range"), new PermissionTuple(PermissionMode.Temperature, "at certain temperatures"), new PermissionTuple(PermissionMode.LightControlled, "At certain light conditions"), new PermissionTuple(PermissionMode.ControlledByDateProfile, "At values from a date based profile"), new PermissionTuple(PermissionMode.VacationControlled, "vacation controlled"), new PermissionTuple(PermissionMode.HolidayControlled, "holiday controlled") }; AndOrList = new ObservableCollection <AnyAllTimeLimitCondition>(); foreach (var value in Enum.GetValues(typeof(AnyAllTimeLimitCondition))) { AndOrList.Add((AnyAllTimeLimitCondition)value); } SetSelectedPermissionModel(Entry); }
private static void TagOfficeJob([NotNull] TimeLimitEntry timeLimitEntry, [NotNull] HouseholdTrait newTrait) { var livingTags = newTrait.Tags.Where(x => x.Tag.Name.Contains("Living Pattern / Office Job")).ToList(); if (livingTags.Count != 1) { throw new LPGException("More than one living pattern"); } newTrait.DeleteHHTTag(livingTags[0]); if (timeLimitEntry.Tag == null) { throw new LPGException("Tag was null"); } newTrait.AddTag(timeLimitEntry.Tag); }
public void SetOneRow([CanBeNull] TimeLimitEntry dtbe) { if (dtbe == null) { return; } if (LimitPresenter?.ThisTimeLimit.RootEntry == null) { return; } if (dtbe == LimitPresenter.ThisTimeLimit.RootEntry) { _rowForPermissionLine = 0; } var foundEntry = false; foreach (var permissionLine in PermissionLines) { if (permissionLine.TimeLimitEntry == dtbe) { Grid.SetRow(permissionLine, _rowForPermissionLine); _rowForPermissionLine++; permissionLine.Presenter.LeftMargin = TimeLimitEntry.GetLevel(dtbe) * 10; foundEntry = true; } } if (!foundEntry) { throw new LPGException("there is a row missing in the display"); } foreach (var timeLimitEntry in dtbe.Subentries) { SetOneRow(timeLimitEntry); } if (BoolGrid.RowDefinitions.Count < _rowForPermissionLine) { BoolGrid.RowDefinitions.Add(new RowDefinition()); } }
private static void TagAlarms([NotNull] Simulator sim, [NotNull] TimeLimitEntry timeLimitEntry, [NotNull] HouseholdTrait newTrait) { var livingTags = newTrait.Tags.Where(x => x.Tag.Name.Contains("Living Pattern")).ToList(); foreach (HHTTag livingTag in livingTags) { newTrait.DeleteHHTTag(livingTag); } TimeSpan endTime = timeLimitEntry.BeginTime; List <TraitTag> tags = new List <TraitTag> { GetTraitTagByName(sim, "Living Pattern / Part Time Job"), GetTraitTagByName(sim, "Living Pattern / Retiree"), GetTraitTagByName(sim, "Living Pattern / Stay at Home / Regular"), GetTraitTagByName(sim, "Living Pattern / Two Shift Work"), GetTraitTagByName(sim, "Living Pattern / University / Student Independent"), GetTraitTagByName(sim, "Living Pattern / University / Student Living at Home") }; if (endTime.Hours <= 7) { tags.Add(GetTraitTagByName(sim, "Living Pattern / Office Job / Early (5-7am)")); tags.Add(GetTraitTagByName(sim, "Living Pattern / Office Job / Medium (7-9am)")); tags.Add(GetTraitTagByName(sim, "Living Pattern / Office Job / Late (9-11am)")); } else if (endTime.Hours <= 8) { tags.Add(GetTraitTagByName(sim, "Living Pattern / Office Job / Medium (7-9am)")); tags.Add(GetTraitTagByName(sim, "Living Pattern / Office Job / Late (9-11am)")); } else { tags.Add(GetTraitTagByName(sim, "Living Pattern / Office Job / Late (9-11am)")); } foreach (TraitTag tag in tags) { if (tag == null) { throw new LPGException("Tag not found"); } newTrait.AddTag(tag); } }
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 PermissionLineOnShowPreviewClicked([CanBeNull] object sender, [CanBeNull] EventArgs e) { if (LimitPresenter == null) { return; } if (e == null) { return; } var aca = (AddClickedEventArgs)e; _timeLimitEntry = aca.TimeLimitEntry; if (ImageShort.ActualHeight > LimitPresenter.ImageHeight && Math.Abs(ImageShort.ActualHeight) > 0.00001) { LimitPresenter.ImageHeight = ImageShort.ActualHeight; } MakeNewImages(); }
public AddClickedEventArgs([NotNull] TimeLimitEntry tle) => TimeLimitEntry = tle;