public List <Event> GetGroupEvents(int groupId, string token) { var eventTypes = _mpGroupRepository.GetEventTypesForGroup(groupId, token); var events = new List <MpEvent>(); foreach (var eventType in eventTypes.Where(eventType => !string.IsNullOrEmpty(eventType))) { events.AddRange(_eventService.GetEvents(eventType, token)); } var futureEvents = events.Where(e => e.EventStartDate >= DateTime.Now).OrderBy(e => e.EventStartDate); var eventList = Mapper.Map <List <Event> >(futureEvents.GroupBy(x => x.EventId).Select(y => y.First())); return(eventList); }