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);
            }
        }