// GET: Polygomy
        public ActionResult Index()
        {
            Polygomy Page = DynamicRouteHelper.GetPage <Polygomy>();

            HttpContext.Kentico().PageBuilder().Initialize(Page.DocumentID);
            // Get Categories
            List <int> PageCategories = TreeCategoryInfoProvider.GetTreeCategories()
                                        .WhereEquals("NodeID", Page.NodeID)
                                        .Select(x => x.CategoryID).ToList();

            PolygomyViewModel model = new PolygomyViewModel()
            {
                MemeCategories = CategoryInfoProvider.GetCategories()
                                 .WhereIn("CategoryID", PageCategories)
                                 .Select(x => x.CategoryDisplayName).ToArray(),
            };

            if (PageCategories.Count > 0)
            {
                model.Memes = MemeProvider.GetMemes()
                              .Where(RelHelper.GetNodeCategoryWhere(PageCategories.Select(x => (object)x)))
                              .ToList();
            }
            return(View("NEWCC/Polygomy", model));
        }
        /// <summary>
        /// Build Node (and upward), and build the children and update recursively only if changes detected.
        /// </summary>
        /// <param name="UrlSlugID"></param>
        public static void UrlSlugModified(int UrlSlugID)
        {
            // Convert UrlSlugID to NodeID
            int NodeID = UrlSlugInfoProvider.GetUrlSlugInfo(UrlSlugID).UrlSlugNodeID;

            DynamicRouteHelper.RebuildRoutesByNode(NodeID);
        }
        /// <summary>
        /// Renders the Dynamic Route View (no model)
        /// </summary>
        /// <returns></returns>
        public ActionResult RenderView()
        {
            var node        = DynamicRouteHelper.GetPage();
            var routeConfig = DynamicRouteHelper.GetRouteConfiguration(node);

            HttpContext.Kentico().PageBuilder().Initialize(node.DocumentID);

            return(View(routeConfig.ViewName));
        }
Ejemplo n.º 4
0
        protected void btnCheckUrl_Click(object sender, EventArgs e)
        {
            ITreeNode Node = DynamicRouteHelper.GetPage(tbxRouteToTest.Text);

            if (Node != null)
            {
                ltrPageFound.Text = $"FOUND! {Node.NodeAliasPath} {Node.ClassName} {Node.DocumentCulture}";
            }
            else
            {
                ltrPageFound.Text = "No Node Found";
            }
        }
        /// <summary>
        /// Gets the node based on the current request url and then renders the template result.
        /// </summary>
        public ActionResult Index()
        {
            ITreeNode FoundNode = DynamicRouteHelper.GetPage();

            if (FoundNode != null)
            {
                HttpContext.Kentico().PageBuilder().Initialize(FoundNode.DocumentID);
                return(new TemplateResult(FoundNode.DocumentID));
            }
            else
            {
                return(new HttpNotFoundResult());
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Returns true if a Page is found using the Dynamic Routing
        /// </summary>
        /// <param name="httpContext"></param>
        /// <param name="route"></param>
        /// <param name="parameterName"></param>
        /// <param name="values"></param>
        /// <param name="routeDirection"></param>
        /// <returns></returns>
        public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
        {
            string controllerName = values.ContainsKey("controller")
                    ? ValidationHelper.GetString(values["controller"], "")
                    : "";

            if (controllerName.Equals("KenticoFormWidget", StringComparison.InvariantCultureIgnoreCase))
            {
                return(false);
            }

            var page = DynamicRouteHelper.GetPage();

            return(page != null && !DynamicRouteInternalHelper.UrlSlugExcludedClassNames().Contains(page.ClassName.ToLower()));
        }
        /// <summary>
        /// Renders the View with either an ITreeNode model or the given Model Type
        /// </summary>
        /// <returns></returns>
        public ActionResult RenderViewWithModel()
        {
            var node        = DynamicRouteHelper.GetPage();
            var routeConfig = DynamicRouteHelper.GetRouteConfiguration(node);

            HttpContext.Kentico().PageBuilder().Initialize(node.DocumentID);

            // Convert type
            if (routeConfig.ModelType != null)
            {
                return(View(routeConfig.ViewName, Convert.ChangeType(node, routeConfig.ModelType)));
            }
            else
            {
                return(View(routeConfig.ViewName, node));
            }
        }
        // GET: ShotgunWedding
        public ActionResult Index()
        {
            ShotgunWedding Page = DynamicRouteHelper.GetPage <ShotgunWedding>();

            HttpContext.Kentico().PageBuilder().Initialize(Page.DocumentID);
            ShotgunWeddingViewModel model = new ShotgunWeddingViewModel()
            {
                ConcertTitle = Page.ConcertName
            };

            foreach (Guid NodeGuid in Page.Songs.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                     .Select(x => ValidationHelper.GetGuid(x, Guid.Empty)))
            {
                model.Songs.Add(SongProvider.GetSong(NodeGuid, LocalizationContext.CurrentCulture.CultureCode, SiteContext.CurrentSiteName));
            }

            return(View("NEWCC/ShotgunWedding", model));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Gets the node based on the current request url and then renders the template result.
        /// </summary>
        public ActionResult Index(string TemplateControllerName = null)
        {
            ITreeNode FoundNode = DynamicRouteHelper.GetPage();

            if (FoundNode != null)
            {
                HttpContext.Kentico().PageBuilder().Initialize(FoundNode.DocumentID);
                if (!string.IsNullOrWhiteSpace(TemplateControllerName))
                {
                    // Adjust the route data to point to the template's controller if it has one.
                    HttpContext.Request.RequestContext.RouteData.Values["Controller"] = TemplateControllerName;
                }
                return(new TemplateResult(FoundNode.DocumentID));
            }
            else
            {
                return(new HttpNotFoundResult());
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Gets the page, and based on the Class of the Page, attempts to get the Dynamic routing information and processes.
        /// </summary>
        /// <param name="context"></param>
        public void ProcessRequest(HttpContext context)
        {
            var node = DynamicRouteHelper.GetPage();

            var routePair = ResolveRouteValues(node);

            RequestRoutingEventArgs RequestArgs = new RequestRoutingEventArgs()
            {
                Page                  = node,
                Configuration         = routePair,
                CurrentRequestContext = RequestContext
            };

            // Use event to allow users to overwrite the Dynamic Routing Data
            using (var RequestRoutingHandler = DynamicRoutingEvents.RequestRouting.StartEvent(RequestArgs))
            {
                // Setup routing with new values
                RequestArgs.CurrentRequestContext.RouteData.Values["Controller"] = routePair.ControllerName;
                RequestArgs.CurrentRequestContext.RouteData.Values["Action"]     = routePair.ActionName;
                foreach (string Key in routePair.RouteValues.Keys)
                {
                    RequestArgs.CurrentRequestContext.RouteData.Values[Key] = routePair.RouteValues[Key];
                }

                // Allow users to adjust the RequestContext further
                RequestRoutingHandler.FinishEvent();

                // Pass back context
                RequestContext = RequestArgs.CurrentRequestContext;
            }

            IControllerFactory factory    = ControllerBuilder.Current.GetControllerFactory();
            IController        controller = factory.CreateController(RequestContext, routePair.ControllerName);

            controller.Execute(RequestContext);

            factory.ReleaseController(controller);
        }
Ejemplo n.º 11
0
        // GET: ArrangedMarriage
        public ActionResult Index()
        {
            ArrangedMarriage Page = DynamicRouteHelper.GetPage <ArrangedMarriage>();

            HttpContext.Kentico().PageBuilder().Initialize(Page.DocumentID);

            ArrangedMarriageViewModel model = new ArrangedMarriageViewModel()
            {
                CarTitle = Page.CarName
            };

            // Get Tires
            model.Tires = DocumentHelper.GetDocuments <CarPart>()
                          .Path($"{Page.NodeAliasPath}/Tires", PathTypeEnum.Children)
                          .OrderBy("NodeOrder")
                          .ToList();
            model.Rims = DocumentHelper.GetDocuments <CarPart>()
                         .Path($"{Page.NodeAliasPath}/Rims", PathTypeEnum.Children)
                         .OrderBy("NodeOrder")
                         .ToList();

            return(View("NEWCC/ArrangedMarriage", model));
        }
 /// <summary>
 /// Rebuilds the Url Slugs affected by a class Url Pattern Change.
 /// </summary>
 /// <param name="ClassName"></param>
 public static void ClassUrlPatternChanged(string ClassName)
 {
     DynamicRouteHelper.RebuildRoutesByClass(ClassName);
 }
 public static void CultureVariationSettingsChanged(string SiteName)
 {
     // Build all, update all
     DynamicRouteHelper.RebuildRoutesBySite(SiteName);
 }
        /// <summary>
        /// Returns an error message when the page is found but no DynamicRouting assembly tags were configured.
        /// </summary>
        /// <returns></returns>
        public ActionResult RouteValuesNotFound()
        {
            var node = DynamicRouteHelper.GetPage();

            return(Content($"<h1>No Route Value Found</h1><p>No DynamicRouting assembly tag was found for the class <strong>{node.ClassName}</strong>, could not route page {node.NodeAliasPath}</p>"));
        }
 /// <summary>
 /// Build ParentNode, and Parent's immediate children, build the children and update recursively only if changes detected.
 /// </summary>
 /// <param name="NodeID"></param>
 public static void DocumentInsertUpdated(int NodeID)
 {
     DynamicRouteHelper.RebuildRoutesByNode(NodeID);
 }
 /// <summary>
 /// Build both ParentNodes, and Parent's immediate children, build the children and update recursively only if changes detected.
 /// </summary>
 /// <param name="OldParentNodeID"></param>
 /// <param name="NewParentNodeID"></param>
 public static void DocumentMoved(int OldParentNodeID, int NewParentNodeID)
 {
     DynamicRouteHelper.RebuildRoutesByNode(OldParentNodeID);
     DynamicRouteHelper.RebuildRoutesByNode(NewParentNodeID);
 }
 /// <summary>
 /// Build ParentNodes, and Parent's immediate children, build the children and update recursively only if changes detected.
 /// </summary>
 /// <param name="ParentNodeID"></param>
 public static void DocumentDeleted(int ParentNodeID)
 {
     DynamicRouteHelper.RebuildRoutesByNode(ParentNodeID);
 }
 public static void SiteDefaultLanguageChanged(string SiteName)
 {
     // Build all, update all
     DynamicRouteHelper.RebuildRoutesBySite(SiteName);
 }
        // GET: KissingCousins
        public ActionResult Index()
        {
            // Temp

            /*HeroBanners Temp = new HeroBanners();
             * Temp.Banners = new List<HeroBanner>();
             * Temp.Banners.Add(new HeroBanner()
             * {
             *  Banner = new BannerHero()
             *  {
             *      Name = "Image Banner",
             *      AltText = "This is an image",
             *      ImageUrl = "https://via.placeholder.com/1200x200.png?text=First+Slide",
             *      Url = "http://www.devtrev.com"
             *  }
             * });
             * Temp.Banners.Add(new HeroBanner()
             * {
             *  Banner = new CTAHero()
             *  {
             *      Name = "Call to Action Banner",
             *      CallToAction = "Click me!",
             *      BackgroundImageUrl = "https://via.placeholder.com/1200x200.png?text=Second+Slide",
             *      Url = "https://www.babylonbee.com"
             *  }
             * });
             * string Serialized = Newtonsoft.Json.JsonConvert.SerializeObject(Temp);
             */

            KissingCousins Page = DynamicRouteHelper.GetPage <KissingCousins>();

            HttpContext.Kentico().PageBuilder().Initialize(Page.DocumentID);
            ViewBag.MetaData = Page.GetPageTypeComponent <Component_MetaData>("MetaData");

            KissingCousinsViewModel model = new KissingCousinsViewModel()
            {
                PageName = Page.MenuName
            };

            // Pass to ViewBag

            /*if(!string.IsNullOrWhiteSpace(Page.MetaData))
             * {
             *  ViewBag.MetaData = JsonConvert.DeserializeObject<MetaDataModel>(Page.MetaData);
             * }*/

            if (!string.IsNullOrWhiteSpace(Page.Banners))
            {
                model.Banners = new List <IHeroBanner>();
                dynamic data = System.Web.Helpers.Json.Decode(Page.Banners);
                foreach (dynamic banner in data.Banners)
                {
                    // Based on the type, Serialize it back to string then deserialize it into the proper object class
                    switch (banner.BannerType.ToLower())
                    {
                    case "bannerhero":
                        model.Banners.Add(JsonConvert.DeserializeObject <BannerHero>(JsonConvert.SerializeObject(banner.Banner)));
                        break;

                    case "ctahero":
                        model.Banners.Add(JsonConvert.DeserializeObject <CTAHero>(JsonConvert.SerializeObject(banner.Banner)));
                        break;
                    }
                }
            }


            return(View("NEWCC/KissingCousins", model));
        }