public void AddSorted(Event evnt) { MonthEvents month = Months.Where(i => i.Month == evnt.Date.Month).FirstOrDefault(); if (month == null) { MonthEvents last = Months.Last(); foreach (var m in Months) { if (evnt.Date.Month < m.Month) { Months.Insert(Months.IndexOf(m), new MonthEvents(evnt)); break; } else if (last == m) { Months.Add(new MonthEvents(evnt)); break; } } } else { month.AddSorted(evnt); } }
private void Init(MonthEvents mnth) { _montEvents = mnth; _year = mnth.Events[0].Date.Year; this.InitializeComponent(); CVS.Source = _montEvents.Events.GroupBy(i => i.Date.Date, (key, list) => new GroupedListItem(key, list)); }
public static Page GetActivePage(Event evnt = null) { List <YearEvents> years; State state; if (State.MenuSelected == MenuSelection.Scheduled) { years = Storage.CallendarActive; state = State.ActiveEvents; } else { years = Storage.CallendarPast; state = State.PastEvents; } switch (state.Page) { case PageActive.Years: return(new YearList(years)); case PageActive.Months: YearEvents year = years.Where(i => i.Year == state.Year).FirstOrDefault(); if (year == null) { State.ActivePage = PageActive.Years; return(new YearList(years)); } else { return(new MonthList(year)); } case PageActive.Events: YearEvents y = years.Where(i => i.Year == state.Year).FirstOrDefault(); if (y == null) { State.ActivePage = PageActive.Years; return(new YearList(years)); } else { MonthEvents month = y.Months.Where(i => i.Month == state.Month).FirstOrDefault(); if (month == null) { State.ActivePage = PageActive.Months; return(new MonthList(y)); } else { return(evnt == null ? new EventList(month) : new EventList(month, evnt)); } } default: return(null); } }
private void List_SelectionChanged(object sender, SelectionChangedEventArgs e) { MonthEvents sel = e.AddedItems.FirstOrDefault() as MonthEvents; if (sel != null) { App.State.Month = sel.Month; App.State.ActivePage = PageActive.Events; App.Cont.Content = new EventList(sel); } }
public async Task <bool> RemoveAsync(params Event[] evnts) { StorageFile xml = await ApplicationData.Current.LocalFolder.GetFileAsync("data.xml"); XmlDocument doc = await XmlDocument.LoadFromFileAsync(xml); List <YearEvents> collection = evnts[0].IsPast ? CallendarPast : CallendarActive; YearEvents year = collection.Where(i => i.Year == evnts[0].Date.Year).FirstOrDefault(); MonthEvents month = year.Months.Where(i => i.Month == evnts[0].Date.Month).FirstOrDefault(); foreach (Event evnt in evnts) { if (!evnt.IconPath.AbsoluteUri.StartsWith("ms-appx")) { await(await StorageFile.GetFileFromApplicationUriAsync(evnt.IconPath)).DeleteAsync(); } if (evnt.MediaMessageType != MediaMessageType.None) { await(await StorageFile.GetFileFromApplicationUriAsync(evnt.MediaMessageUri)).DeleteAsync(); } if (evnt.HasStroke) { await(await(await ApplicationData.Current.LocalFolder. GetFolderAsync("Inks")).GetFileAsync(evnt.Guid.ToString() + ".gif")).DeleteAsync(); } var root = doc.FirstChild; foreach (var enode in root.ChildNodes) { if (enode.FirstChild.InnerText == evnt.Guid.ToString()) { root.RemoveChild(enode); break; } } Names.Remove(evnt.Name); Guids.Remove(evnt.Guid); if (evnt.Alarm != null) { var notifier = ToastNotificationManager.CreateToastNotifier(); var notifs = notifier.GetScheduledToastNotifications(); var notif = notifs.Where(i => i.DeliveryTime == evnt.Alarm.Value).FirstOrDefault(); if (notif != null) { notifier.RemoveFromSchedule(notif); } } month.Events.Remove(evnt); } await doc.SaveToFileAsync(xml); if (month.Events.Count > 0) { return(false); } else { year.Months.Remove(month); if (year.Months.Count > 0) { App.State.ActivePage = PageActive.Months; return(true); } else { collection.Remove(year); App.State.ActivePage = PageActive.Years; return(true); } } }
public EventList(MonthEvents mnth, Event evnt) { Init(mnth); _evnt = evnt; }
public EventList(MonthEvents mnth) { Init(mnth); }