private static PageContent BuildDefaultPageContent(RoutePageRequest routeRequest) { return new PageContent { Heading = routeRequest.UrlSegment + " " + routeRequest.Category, PageTitle = routeRequest.UrlSegment + " " + routeRequest.Category, PageContentID = -1, ContentArea = new ContentArea { Name = routeRequest.Area }, ContentCategory = new ContentCategory { Name = routeRequest.Category }, ContentSubCategory = new ContentSubCategory { Name = routeRequest.SubCategory }, UrlSegment = routeRequest.UrlSegment }; }
public static RoutePageRequest RetrievePageRequest(ControllerContext filterContext, IPageContentRepository repository) { RoutePageRequest routeRequest = new RoutePageRequest(); routeRequest.UrlSegment = filterContext.RouteData.Values["urlSegment"] == null ? filterContext.RouteData.Values["action"].ToString() : filterContext.RouteData.Values["urlSegment"].ToString(); routeRequest.Area = filterContext.RouteData.Values["area"] == null ? "" : filterContext.RouteData.Values["area"].ToString(); routeRequest.Category = filterContext.RouteData.Values["category"]?.ToString(); if (string.IsNullOrEmpty(routeRequest.Category)) { string controller = filterContext.RouteData.Values["controller"].ToString(); routeRequest.Category = controller != "PublicContent" ? controller : null; } routeRequest.Category = routeRequest.Category == "none" ? null : routeRequest.Category; routeRequest.SubCategory = filterContext.RouteData.Values["subCategory"]?.ToString(); routeRequest.PageContent = repository.RetrieveAsync(routeRequest).Result; return routeRequest; }