public void MvcSettings_has_default_PlainViewPath()
        {
            var settings = new MvcSettings();

            Assert.StartsWith("~/", settings.PlainViewPath);
            Assert.EndsWith(".cshtml", settings.PlainViewPath);
        }
        public void MvcSettings_has_default_ViewParameterName()
        {
            var settings = new MvcSettings();

            Assert.NotNull(settings.ViewParameterName);
            Assert.NotEqual(string.Empty, settings.ViewParameterName);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets view path from layout item
        /// </summary>
        /// <param name="args">Get renderer arguments</param>>
        /// <returns>View path</returns>
        private string GetViewPathFromLayoutItem(GetRendererArgs args)
        {
            var path = ObjectExtensions.ValueOrDefault <LayoutItem, string>(args.LayoutItem,
                                                                            (Func <LayoutItem, string>)(item => item.FilePath));

            if (StringExtensions.IsWhiteSpaceOrNull(path))
            {
                return((string)null);
            }

            if (!MvcSettings.IsViewExtension(Path.GetExtension(path)) && StringExtensions.IsAbsoluteViewPath(path))
            {
                return((string)null);
            }

            return(path);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Get all renderings out of the layout definition
        /// </summary>
        /// <param name="layoutDefinition">xml of the layout definition</param>
        /// <returns>list of renderings</returns>
        protected virtual IEnumerable <Rendering> GetRenderings(XElement layoutDefinition)
        {
            XmlBasedRenderingParser parser = MvcSettings.GetRegisteredObject <XmlBasedRenderingParser>();

            foreach (XElement xelement in layoutDefinition.Elements("d"))
            {
                Guid deviceId = xelement.GetAttributeValueOrEmpty("id").ToGuid();
                Guid layoutId = xelement.GetAttributeValueOrEmpty("l").ToGuid();

                yield return(GetRendering(xelement, deviceId, layoutId, "Layout", parser));

                foreach (XElement renderingNode in xelement.Elements("r"))
                {
                    yield return(GetRendering(renderingNode, deviceId, layoutId, renderingNode.Name.LocalName, parser));
                }
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Gets from layout.
        /// </summary>
        /// <param name="rendering">The rendering.</param>
        /// <param name="args">The args.</param>
        /// <returns></returns>
        protected virtual object GetFromLayout(Rendering rendering, GetModelArgs args)
        {
            string pathOrId = rendering.Properties["LayoutId"];

            if (pathOrId.IsWhiteSpaceOrNull())
            {
                return(null);
            }
            string model = MvcSettings.GetRegisteredObject <ItemLocator>().GetItem(pathOrId).ValueOrDefault(i => i["Model"]);

            if (model.IsWhiteSpaceOrNull())
            {
                return(null);
            }
            else
            {
                return(GetObject(model, rendering.Item.Database, rendering));
            }
        }
Ejemplo n.º 6
0
        protected virtual object GetFromLayout(Rendering rendering, GetModelArgs args)
        {
            string pathOrId = rendering.Properties["LayoutId"];

            if (StringExtensions.IsWhiteSpaceOrNull(pathOrId))
            {
                return((object)null);
            }
            string model = ObjectExtensions.ValueOrDefault <Item, string>(MvcSettings.GetRegisteredObject <ItemLocator>().GetItem(pathOrId), (Func <Item, string>)(i => i["Model"]));

            if (StringExtensions.IsWhiteSpaceOrNull(model))
            {
                return((object)null);
            }
            else
            {
                return(GetObject(model));
            }
        }
        protected override IEnumerable <Rendering> GetRenderings(XElement layoutDefinition, BuildPageDefinitionArgs args)
        {
            var parser = MvcSettings.GetRegisteredObject <XmlBasedRenderingParser>();

            foreach (var node in layoutDefinition.Elements((XName)"d"))
            {
                var deviceNode = node;

                var deviceId = deviceNode.GetAttributeValueOrEmpty("id").ToGuid();
                var layoutId = deviceNode.GetAttributeValueOrEmpty("l").ToGuid();

                if (args.PageContext.RequestContext.HttpContext.IsAmpRequest())
                {
                    layoutId = new Guid(Sitecore.Configuration.Settings.GetSetting("MyProject.AmpLayoutId"));
                }

                yield return(this.GetRendering(deviceNode, deviceId, layoutId, "Layout", parser));

                foreach (var element2 in deviceNode.Elements((XName)"r"))
                {
                    yield return(this.GetRendering(element2, deviceId, layoutId, element2.Name.LocalName, parser));
                }
            }
        }
Ejemplo n.º 8
0
 public virtual void Process(PipelineArgs args)
 {
     MvcSettings.RegisterObject <XmlBasedRenderingParser>(() => new LightXmlBasedRenderingParser(BoostContext.Default));
 }
Ejemplo n.º 9
0
 public void Process(PipelineArgs args)
 {
     MvcSettings.RegisterObject <ModelLocator>(() => new ResolvingModelLocator());
 }
Ejemplo n.º 10
0
 public virtual void Process(PipelineArgs args)
 {
     MvcSettings.RegisterObject <XmlBasedRenderingParser>(() => new CustomXmlBasedRenderingParser());
 }
Ejemplo n.º 11
0
 public virtual void Process(PipelineArgs args)
 {
     MvcSettings.RegisterObject <ModelLocator>(() => new AdvancedModelLocator());
 }