public List<ScheduleEntry> GenerateSchedule(StirTrekFeed feed) { var scheduleList = new List<ScheduleEntry>(); foreach (var timeSlot in feed.TimeSlots) { var sessionList = feed.Sessions .Where(x => x.TimeSlotId == timeSlot.Id) .OrderBy(x => x.TrackId) .ToList(); scheduleList.Add(new ScheduleEntry{TimeSlot = timeSlot, Sessions = sessionList}); } return scheduleList.OrderBy(x => x.TimeSlot.StartTime).ToList(); }
private void LoadSessions(StirTrekFeed returnFeed) { foreach (var session in returnFeed.Sessions) { session.Speakers = new List<Speaker>(); foreach (var speaker in session.SpeakerIds.Select(speakerId => returnFeed.Speakers.FirstOrDefault(x => x.Id == speakerId)) .Where(speaker => speaker != null)) { session.Speakers.Add(speaker); } session.Track = returnFeed.Tracks.FirstOrDefault(x => x.Id == session.TrackId); session.TimeSlot = returnFeed.TimeSlots.FirstOrDefault(x => x.Id == session.TimeSlotId); } }