public void SetRange(DateTime startDate, DateTime endDate, CalendarPages pages) { listbox.Items.Clear(); var date = startDate; while (date <= endDate) { var settings = new SettingsProvider(); var daypages = new CalendarPages(); // filtering prioritizes modified over created and prevent pages from being // displayed twice in the month if both created and modified in the same month daypages.AddRange(pages.Where(p => (settings.Modified && p.Modified.Date.Equals(date)) || (!settings.Modified && p.Created.Date.Equals(date)) )); if (daypages.Any() || settings.Empty) { listbox.Items.Add(new DayItem { Date = date, Pages = daypages }); } date = date.AddDays(1); } Invalidate(); }
private void MakeDay( CalendarDays days, CalendarPages pages, DateTime date, bool modified, bool inMonth = false) { var day = new CalendarDay { Date = date, InMonth = inMonth }; // filtering prioritizes modified over created and prevent pages from being // displayed twice in the month if both created and modified in the same month var pags = pages.Where(p => (modified && p.Modified.Date.Equals(date)) || (!modified && p.Created.Date.Equals(date)) ); pags.ForEach(p => day.Pages.Add(p)); days.Add(day); }