public void RegisterRoutes(RouteCollection routes) { string[] pdc09ControllerNamespaces = new[] { "OxiteSite.App_Code.Modules.OxiteSite.Controllers" }; string[] externalControllerNamespaces = new[] { "Oxite.Modules.Conferences.Controllers" }; // Resolve the event by configuration var eventNameValue = ConfigurationResolver.GetEventName(); // Live ID routes.MapRoute( "PDCLiveIDSignOutImage", "WLID/ExpireCookie.aspx", new { controller = "User", action = "SignOutImage" }, null, new [] { "Oxite.Modules.LiveID.Controllers" } ); routes.MapRoute( "PDCLiveIDRegister", "Register", new { controller = "User", action = "Register" }, null, pdc09ControllerNamespaces ); // Home // You can't use a preprocessor directive in dynamic code (App_Code) routes.MapRoute( "Home", "", new { controller = "Page", action = "Home", eventName = eventNameValue, pageIndex = 0, pageSize = 7, pagePath = "home" }, null, pdc09ControllerNamespaces ); // Maps routes.MapRoute( "Hotels", "Hotels", new { controller = "Page", action = "Hotels", pagePath = "hotels" }, null, pdc09ControllerNamespaces ); routes.MapRoute( "Partners", "Partners", new { controller = "Page", action = "Partners", pagePath = "partners" }, null, pdc09ControllerNamespaces ); routes.MapRoute( "MapsDefault", "Maps", new { controller = "Page", action = "Maps", pagePath = "Maps" }, null, pdc09ControllerNamespaces ); routes.MapRoute( "Maps", "Maps/{mapType}", new { controller = "Page", action = "Maps", pagePath = "Maps" }, null, pdc09ControllerNamespaces ); // Sessions routes.MapRoute("PDC09SessionSiteMap", "SiteMap/Sessions", new { controller = "ScheduleItem", action = "SiteMap", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions", dataFormat = "" }, externalControllerNamespaces ); routes.MapRoute( "AllMyPDC09Sessions", "Sessions/Mine/{dataFormat}", new { controller = "ScheduleItem", action = "ListByUser", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions", dataFormat = "" }, new { dataFormat = "(|RSS|ATOM|ICS)" }, externalControllerNamespaces ); routes.MapRoute( "MyPDC09Sessions", "Sessions/Mine/{*scheduleItemFilterCriteria}", new { controller = "ScheduleItem", action = "ListByUser", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions" }, new { scheduleItemFilterCriteria = new IsScheduleItemFilterCriteria() }, externalControllerNamespaces ); routes.MapRoute( "MyPDC09SessionsUrl", "Sessions/Mine/{*scheduleItemFilterCriteria}", new { controller = "ScheduleItem", action = "ListByUser", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions" }, new { routeDirection = new RouteDirectionConstraint(RouteDirection.UrlGeneration) }, externalControllerNamespaces ); // Videos routes.MapRoute( "AllPDC09SessionsWithVideo", "Videos", new { controller = "ScheduleItem", action = "ListByEventWithVideo", eventName = eventNameValue, scheduleItemType = "Video", pagePath = "videos", dataFormat = "" }, null, externalControllerNamespaces ); // Tags routes.MapRoute( "AllPDC09SessionsByTag", "Sessions/Tags/{tagName}", new { controller = "ScheduleItem", action = "ListByEventAndTag", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions" }, null, externalControllerNamespaces ); routes.MapRoute( "Workshops", "Workshops", new { controller = "ScheduleItem", action = "ListByEventAndWorkshops", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions", tagName = "Workshop" }, null, externalControllerNamespaces ); routes.MapRoute( "PDC09SessionsByTag", "Sessions/Tags/{tagName}/{*scheduleItemFilterCriteria}", new { controller = "ScheduleItem", action = "ListByEventAndTag", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions" }, new { scheduleItemFilterCriteria = new IsScheduleItemFilterCriteria() }, externalControllerNamespaces ); routes.MapRoute( "MyPDC09SessionsByTag", "Sessions/Tags/{tagName}", new { controller = "ScheduleItem", action = "ListByEventAndTagAndUser", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions" }, null, externalControllerNamespaces ); routes.MapRoute( "AllPDC09Sessions", "Sessions/{dataFormat}", new { controller = "ScheduleItem", action = "ListByEvent", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions", dataFormat = "" }, new { dataFormat = "(|RSS|ATOM|SIGN|ICS)" }, externalControllerNamespaces ); routes.MapRoute( "AllPDC09SessionsByFileFormat", "Sessions/{dataFormat}/{fileFormat}", new { controller = "ScheduleItem", action = "ListByEventWithVideo", eventName = eventNameValue, scheduleItemType = "Video", pagePath = "sessions", dataFormat = "", fileFormat = "WMVHigh" }, new { dataFormat = "RSS", fileFormat = "(WMVHigh|WMV|MP4|PPT)" }, externalControllerNamespaces ); routes.MapRoute( "PDC09Sessions", "Sessions/{*scheduleItemFilterCriteria}", new { controller = "ScheduleItem", action = "ListByEvent", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions" }, new { scheduleItemFilterCriteria = new IsScheduleItemFilterCriteria() }, externalControllerNamespaces ); routes.MapRoute( "PDC09SessionsUrl", "Sessions/{*scheduleItemFilterCriteria}", new { controller = "ScheduleItem", action = "ListByEvent", eventName = eventNameValue, scheduleItemType = "Session", pagePath = "sessions" }, new { routeDirection = new RouteDirectionConstraint(RouteDirection.UrlGeneration) }, externalControllerNamespaces ); routes.MapRoute( "PDC09SessionCal", "Sessions/{scheduleItemSlug}/ICS", new { controller = "ScheduleItem", action = "ItemIcs", eventName = eventNameValue, scheduleItemType = "Session" }, null, externalControllerNamespaces ); routes.MapRoute( "PDC09Session", "Sessions/{scheduleItemSlug}", new { controller = "ScheduleItem", action = "Item", eventName = eventNameValue, scheduleItemType = "Session" }, null, externalControllerNamespaces ); // Session Management (PRG) routes.MapRoute( "PDC09AddUserSession", "Sessions/Add/{scheduleItemSlug}", new { controller = "ScheduleItem", action = "AddToUser", eventName = eventNameValue, scheduleItemType = "Session" }, new { httpMethod = new HttpMethodConstraint("POST") }, externalControllerNamespaces ); routes.MapRoute( "PDC09RemoveUserSession", "Sessions/Remove/{scheduleItemSlug}", new { controller = "ScheduleItem", action = "RemoveFromUser", eventName = eventNameValue, scheduleItemType = "Session" }, new { httpMethod = new HttpMethodConstraint("POST") }, externalControllerNamespaces ); routes.MapRoute( "MyPDC09AddUserSession", "Sessions/Mine/Add/{scheduleItemSlug}", new { controller = "ScheduleItem", action = "AddToUser", eventName = eventNameValue, scheduleItemType = "Session" }, new { httpMethod = new HttpMethodConstraint("POST") }, externalControllerNamespaces ); routes.MapRoute( "MyPDC09RemoveUserSession", "Sessions/Mine/Remove/{scheduleItemSlug}", new { controller = "ScheduleItem", action = "RemoveFromUser", eventName = eventNameValue, scheduleItemType = "Session" }, new { httpMethod = new HttpMethodConstraint("POST") }, externalControllerNamespaces ); // Session Management (AJAX) routes.MapRoute( "PDC09AddUserSessionJson", "Sessions/Add/{scheduleItemSlug}/Json", new { controller = "ScheduleItem", action = "AddToUserJson", eventName = eventNameValue, scheduleItemType = "Session" }, externalControllerNamespaces ); routes.MapRoute( "MyPDC09RemoveUserSessionJson", "Sessions/Mine/Remove/{scheduleItemSlug}/Json", new { controller = "ScheduleItem", action = "RemoveFromUserJson", eventName = eventNameValue, scheduleItemType = "Session" }, externalControllerNamespaces ); routes.MapRoute( "MyPDC09AddUserSessionJson", "Sessions/Mine/Add/{scheduleItemSlug}/Json", new { controller = "ScheduleItem", action = "AddToUserJson", eventName = eventNameValue, scheduleItemType = "Session" }, externalControllerNamespaces ); routes.MapRoute( "PDC09RemoveUserSessionJson", "Sessions/Remove/{scheduleItemSlug}/Json", new { controller = "ScheduleItem", action = "RemoveFromUserJson", eventName = eventNameValue, scheduleItemType = "Session" }, externalControllerNamespaces ); // Schedule Sharing (PRG) routes.MapRoute( "PDC09ToggleUserShareSchedule", "Schedule/Share", new { controller = "ScheduleItem", action = "ShareSchedule", eventName = eventNameValue, scheduleItemType = "Session" }, externalControllerNamespaces ); // Schedule Sharing (AJAX) routes.MapRoute( "PDC09ToggleUserShareScheduleJson", "Schedule/Share/Json", new { controller = "ScheduleItem", action = "ShareScheduleJson", eventName = eventNameValue, scheduleItemType = "Session" }, externalControllerNamespaces ); routes.MapRoute( "PDC09SessionCommentPermalink", "Sessions/{scheduleItemSlug}#{commentSlug}", null, new { routeDirection = new RouteDirectionConstraint(RouteDirection.UrlGeneration) }, externalControllerNamespaces ); routes.MapRoute( "RemoveScheduleItemComment", "Admin/Sessions/{scheduleItemSlug}/{commentSlug}/RemoveComment", new { controller = "Comment", action = "Remove", eventName = eventNameValue, role = "Admin", validateAntiForgeryToken = true }, new { httpMethod = new HttpMethodConstraint("POST") }, externalControllerNamespaces ); routes.MapRoute( "ApproveScheduleItemComment", "Admin/Sessions/{scheduleItemSlug}/{commentSlug}/ApproveComment", new { controller = "Comment", action = "Approve", eventName = eventNameValue, role = "Admin", validateAntiForgeryToken = true }, new { httpMethod = new HttpMethodConstraint("POST") }, externalControllerNamespaces ); routes.MapRoute( "PDC09ManageExhibitors", "Admin/Exhibitors", new { controller = "Exhibitor", action = "List", eventName = eventNameValue, role = "Admin", validateAntiForgeryToken = true }, new { httpMethod = new HttpMethodConstraint("GET") }, externalControllerNamespaces ); //routes.MapRoute( // "PDC09ScheduleItemSiteMap", // "SiteMap/Sessions", // new { controller = "ScheduleItem", action = "SiteMap", eventName = "PDC09" }, // null, // externalControllerNamespaces // ); // Schedules routes.MapRoute( "MySchedule", "Schedule/Mine/{dayName}", new { controller = "ScheduleItem", action = "ListByDateRangeAndUser", eventName = eventNameValue, pagePath = "schedule", dayName = "Monday" }, new { dayName = "(Monday|Tuesday|Wednesday|Thursday)" }, pdc09ControllerNamespaces ); routes.MapRoute( "Schedule", "Schedule/{dayName}", new { controller = "ScheduleItem", action = "ListByDateRange", eventName = eventNameValue, pagePath = "schedule", dayName = "Monday" }, new { dayName = "(Monday|Tuesday|Wednesday|Thursday)" }, pdc09ControllerNamespaces ); routes.MapRoute( "UserSchedule", "Schedule/{userName}", new { controller = "User", action = "Schedule", eventName = eventNameValue, pageIndex = 0, pageSize = 7, pagePath = "schedule" }, externalControllerNamespaces ); // Speakers routes.MapRoute( "SpeakerSiteMap", "SiteMap/Speakers", new { controller = "Speaker", action = "SiteMap", eventName = eventNameValue, pagePath = "speakers" }, null, externalControllerNamespaces ); routes.MapRoute( "AllPDC09Speakers", "Speakers", new { controller = "Speaker", action = "ListByEvent", eventName = eventNameValue, pagePath = "speakers" }, null, externalControllerNamespaces ); routes.MapRoute( "PDC09Speakers", "Speakers/{*speakerFilterCriteria}", new { controller = "Speaker", action = "ListByEvent", eventName = eventNameValue, pagePath = "speakers" }, new { speakerFilterCriteria = new IsSpeakerFilterCriteria() }, externalControllerNamespaces ); routes.MapRoute( "PDC09Speaker", "Speakers/{speakerName}", new { controller = "Speaker", action = "Item", eventName = eventNameValue }, new { speakerName = new IsSpeaker() }, externalControllerNamespaces ); routes.MapRoute( "PDC09SpeakerRedirect", "Speakers/{speakerName}", new { controller = "Redirection", action = "Speaker" }, null, externalControllerNamespaces ); // Exhibitors routes.MapRoute( "PDC09Exhibitors", "Exhibitors", new { controller = "Exhibitor", action = "Exhibitors", eventName = eventNameValue, pagePath = "exhibitors", path = "exhibitors", pageIndex = 0, pageSize = 100, }, null, externalControllerNamespaces ); // Sponsors routes.MapRoute( "PDC09Sponsors", "Sponsors", new { controller = "Exhibitor", action = "Sponsors", eventName = eventNameValue, pagePath = "sponsors", path = "sponsors", pageIndex = 0, pageSize = 100 }, null, externalControllerNamespaces ); routes.MapRoute( "PDC09SaveExhibitors", "Admin/Exhibitors/{exhibitorSlug}", new { controller = "Exhibitor", action = "Save", eventName = eventNameValue, path = "exhibitors" }, new { httpMethod = new HttpMethodConstraint("POST") }, externalControllerNamespaces ); routes.MapRoute( "PDC09RemoveExhibitors", "Admin/Exhibitors/{exhibitorSlug}/Remove", new { controller = "Exhibitor", action = "Remove", eventName = eventNameValue, path = "exhibitors" }, //new { httpMethod = new HttpMethodConstraint("POST") }, externalControllerNamespaces ); // Contact Form routes.MapRoute( "Contact", "Contact", new { controller = "Page", action = "Contact", path = "contact" }, null, pdc09ControllerNamespaces ); // Admin Summary Report routes.MapRoute( "SummaryReport", "Reports/Summary", new { controller = "Reports", action = "Summary", pagePath = "Reports" }, null, pdc09ControllerNamespaces ); }