private void InitEvents() { _yearRange = (int)AppDomain.CurrentDomain.GetData("EventViewableYearRange"); CurrentYear = DateTime.Today.Year; Events = new EventPeriod <EventPeriod <GXEvent> > [_yearRange]; Events[0] = new EventPeriod <EventPeriod <GXEvent> >(CurrentYear, FetchEvents(CurrentYear)); for (int i = 1; i < _yearRange; i++) { Events[i] = new EventPeriod <EventPeriod <GXEvent> >(CurrentYear + i, new EventPeriod <GXEvent> [quarter]); } }
private EventPeriod <GXEvent>[] FetchEvents(int year) { var result = new EventPeriod <GXEvent> [quarter]; var yearEvents = _dbs.GetEvents(e => e.StartDate.Year == year); for (int i = 1; i <= quarter; i++) { Quarter qt; if (Enum.TryParse("Q" + i, out qt)) { var quarterEvents = yearEvents.Where(e => (e.StartDate.Month >= 12 / quarter * (i - 1) + 1) && (e.StartDate.Month <= 12 / quarter * i)) .OrderBy(e => e.StartDate).ToArray(); result[i - 1] = new EventPeriod <GXEvent>(qt, quarterEvents); } } return(result); }