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