private void InitCalendar() { var updates = new List <Update>(); Task.Run(async() => { updates = await _updatesRepository.GetEnrolledUpdates(); }).Wait(); Dictionary <DateTime, List <Update> > groupedUpdates = updates .GroupBy(k => k.Deadline) .OrderByDescending(k => k.Key) .ToDictionary(k => k.Key, v => v.OrderByDescending(x => x.Deadline).ToList()); Events = new EventCollection(); foreach (var date in groupedUpdates) { var key = date.Key; Events.Add(key, groupedUpdates[key]); } }