public static void CreateTileNotification(ClassInstance classInstance, DateTime next) { var tile = AdaptiveTile.CreateTile(); var binding = TileBinding.Create(TemplateType.TileWide); binding.Branding = Branding.None; var subgroup = new SubGroup(); if (classInstance.classData != null) { var header = new Text(classInstance.classData.ToString()) { Style = TextStyle.Body }; subgroup.AddText(header); } if (classInstance.from != null) { var dateTime = new Text(Data.loader.GetString(classInstance.weekDay.ToString()) + " " + classInstance.from) { Style = TextStyle.Body }; subgroup.AddText(dateTime); } if (classInstance.room != null) { var classRoom = new Text(classInstance.room) { Style = TextStyle.Caption }; subgroup.AddText(classRoom); } if (classInstance.teacher != null) { var teacher = new Text(classInstance.teacher.ToString()) { Style = TextStyle.Caption }; subgroup.AddText(teacher); } binding.Add(subgroup); tile.Tiles.Add(binding); TileNotification tn = tile.GetNotification(); tn.ExpirationTime = new DateTimeOffset(next); TileUpdateManager.CreateTileUpdaterForApplication().Update(tn); }
string WriteiCalEvent(string iCal, ClassInstance cInstance, DateTime now, DateTime semestrEnd) { DateTime next = Extensions.WhenIsNext(cInstance, now); string Event = WNLiCal("BEGIN:VEVENT"); Event += WNLiCal("SUMMARY:" + cInstance.classData.ToString()); Event += WNLiCal("DTSTART:" + ToICalDateFormat(next)); Event += WNLiCal("DTEND:" + ToICalDateFormat(next.AddMinutes((cInstance.to - cInstance.from).TotalMinutes))); Event += WNLiCal("LOCATION:" + cInstance.room); Event += WNLiCal("RRULE:FREQ=WEEKLY;UNTIL=" + ToICalDateFormat(semestrEnd) + (cInstance.weekType != WeekType.EveryWeek ? ";INTERVAL=2" : "")); Event += WNLiCal("END:VEVENT"); return(Event); }
protected override void OnNavigatedTo(NavigationEventArgs e) { ClassInstance cInstance = (ClassInstance)e.Parameter; if (cInstance != null) { comboBoxClass.SelectedIndex = Data.classes.FindIndex(x => x == cInstance.classData); comboBoxClassType.SelectedIndex = (int)cInstance.classType; comboBoxWeek.SelectedIndex = (int)cInstance.weekType; timePickerFrom.Time = cInstance.from; timePickerTo.Time = cInstance.to; textBoxRoom.Text = cInstance.room; comboBoxDay.SelectedIndex = (int)cInstance.weekDay; System.Diagnostics.Debug.WriteLine(cInstance); System.Diagnostics.Debug.WriteLine(Data.teachers.FindIndex(x => x.GetHashCode() == cInstance.teacher.GetHashCode())); comboBoxTeacher.SelectedIndex = Data.teachers.FindIndex(x => x == cInstance.teacher); editObject = cInstance; buttonDelete.Visibility = Visibility.Visible; } }
public static DateTime WhenIsNext(ClassInstance classInstance, DateTime now) { int currentDay = (int)now.DayOfWeek - 1; if (currentDay == -1) { currentDay = 6; } int expireIn; if (currentDay == (int)classInstance.weekDay) { expireIn = classInstance.from > now.TimeOfDay ? 0 : 7; } else { expireIn = currentDay <= (int)classInstance.weekDay ? (int)classInstance.weekDay - currentDay : 7 - currentDay + (int)classInstance.weekDay; } now = now.AddDays(expireIn); if (classInstance.weekType != WeekType.EveryWeek) { if (GetWeekOfYear(now) % 2 == 0 && classInstance.weekType == WeekType.OddWeek) { now = now.AddDays(7); } else if (GetWeekOfYear(now) % 2 == 1 && classInstance.weekType == WeekType.EvenWeek) { now = now.AddDays(7); } } return(new DateTime(now.Year, now.Month, now.Day, classInstance.from.Hours, classInstance.from.Minutes, classInstance.from.Seconds)); }
public static void AddClassInstance(ClassInstance classInstance) { classInstances.Add(classInstance); dataStore.Save(); }
string WriteiCalEvent(string iCal, ClassInstance cInstance, DateTime now, DateTime semestrEnd) { DateTime next = Extensions.WhenIsNext(cInstance, now); string Event = WNLiCal("BEGIN:VEVENT"); Event += WNLiCal("SUMMARY:" + cInstance.classData.ToString()); Event += WNLiCal("DTSTART:" + ToICalDateFormat(next)); Event += WNLiCal("DTEND:" + ToICalDateFormat(next.AddMinutes((cInstance.to - cInstance.from).TotalMinutes))); Event += WNLiCal("LOCATION:" + cInstance.room); Event += WNLiCal("RRULE:FREQ=WEEKLY;UNTIL=" + ToICalDateFormat(semestrEnd) + (cInstance.weekType != WeekType.EveryWeek ? ";INTERVAL=2" : "")); Event += WNLiCal("END:VEVENT"); return Event; }
public static void DeleteClassInstance(ClassInstance classInstance) { dataStore.classInstances.Remove(classInstance); dataStore.Save(); }
public DisplayClass(ClassInstance classInstance) { this.classInstance = classInstance; }