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); }
/// <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); }
/// <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)); } } }
/// <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)); } }
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)); } } }
public virtual void Process(PipelineArgs args) { MvcSettings.RegisterObject <XmlBasedRenderingParser>(() => new LightXmlBasedRenderingParser(BoostContext.Default)); }
public void Process(PipelineArgs args) { MvcSettings.RegisterObject <ModelLocator>(() => new ResolvingModelLocator()); }
public virtual void Process(PipelineArgs args) { MvcSettings.RegisterObject <XmlBasedRenderingParser>(() => new CustomXmlBasedRenderingParser()); }
public virtual void Process(PipelineArgs args) { MvcSettings.RegisterObject <ModelLocator>(() => new AdvancedModelLocator()); }