コード例 #1
0
        public ActionResult Index()
        {
            var conf = Conference;

            if (conf == null)
            {
                return(HttpNotFound());
            }

            var speakers      = conferenceService.GetSpeakers(conf.Id);
            var sessions      = conferenceService.GetSessions(conf.Id);
            var slots         = conferenceService.GetSlotsAndSessions(conf.Id);
            var rooms         = conferenceService.GetRooms(conf.Id);
            var sponsors      = conferenceService.GetSponsors(conf.Id);
            var speakerImages = conferenceService.GetSpeakerImages(conf.Id);

            ViewData["Speakers"]      = speakers;
            ViewData["Sessions"]      = sessions;
            ViewData["Slots"]         = slots;
            ViewData["Rooms"]         = rooms;
            ViewData["Sponsors"]      = sponsors;
            ViewData["Conference"]    = conf;
            ViewData["SpeakerImages"] = speakerImages;

            bool ticketSalesOpen;

            // Do we have forced open/close info for ticket sales?
            if (!bool.TryParse(ConfigurationManager.AppSettings["Ticket_Sales_Force"], out ticketSalesOpen))
            {
                // No forced info. Let's see if we have an open date/time
                DateTime ticketsOpenDateTime;
                if (DateTime.TryParse(ConfigurationManager.AppSettings["Ticket_Sales_Open_Date"],
                                      CultureInfo.InvariantCulture,
                                      DateTimeStyles.None, out ticketsOpenDateTime))
                {
                    // Ticket sales should be open if the local conference time is greater than the date/time
                    ticketSalesOpen = conference.CurrentTime() > ticketsOpenDateTime;
                }
            }

            bool conferenceOngoing = false;

            if (conference.Start.HasValue && conference.End.HasValue)
            {
                var currentTime = conference.CurrentTime();
                conferenceOngoing = currentTime > conference.Start.Value.Date &&
                                    currentTime < conference.End.Value.Date.AddDays(1);
            }

            ViewData["TicketSalesOpen"]   = ticketSalesOpen;
            ViewData["ConferenceOngoing"] = conferenceOngoing;
            ViewData["TicketUrl"]         = ConfigurationManager.AppSettings["Ticket_Url"];
            ViewData["TicketKey"]         = ConfigurationManager.AppSettings["Ticket_Key"];
            ViewData["SponsorTicketKey"]  = ConfigurationManager.AppSettings["SponsorTicket_Key"];

            return(View());
        }