Ejemplo n.º 1
0
        public ActionResult Index()
        {
            var conference = conferenceLoader.LoadConference();

            if (!conference.CanShowSpeakers())
            {
                return(HttpNotFound());
            }

            var speakers        = new List <SpeakerDisplayModel>();
            var speakerProfiles = userProfileRepository.GetAllUserProfiles();

            var sessionLoader     = sessionLoaderFactory.Create(conference);
            var userProfileFilter = userProfileFilterFactory.Create(conference);
            var speakersWhoHaveSubmittedSessions = userProfileFilter.FilterProfiles(speakerProfiles);

            foreach (var speakerProfile in speakersWhoHaveSubmittedSessions)
            {
                var speakersSessions = sessionLoader.LoadSessions(speakerProfile);
                var speaker          = CreateDisplayModel(speakerProfile, speakersSessions);
                speakers.Add(speaker);
            }

            speakers.Sort(new SpeakerDisplayModelComparer());
            return(View(speakers));
        }