public RenderingItem([CanBeNull] IRenderingContainer renderingContainer, [NotNull] IItem item) { Assert.ArgumentNotNull(item, nameof(item)); RenderingContainer = renderingContainer; Name = item.Name; Cacheable = false; Conditions = string.Empty; DataSource = string.Empty; ItemId = item.ItemUri.ItemId.ToString(); MultiVariateTests = string.Empty; Parameters = string.Empty; PlaceholderKey = new PlaceHolderKey(string.Empty); UniqueId = Guid.NewGuid().Format(); VaryByData = false; VaryByDevice = false; VaryByLogin = false; VaryByParameters = false; VaryByQueryString = false; VaryByUser = false; PlaceHolders = string.Empty; DataSourceLocation = string.Empty; DataSourceTemplate = string.Empty; FilePath = string.Empty; ParameterTemplateId = string.Empty; Ruleset = string.Empty; SpeakCoreVersion = string.Empty; SpeakCoreVersionId = string.Empty; ParameterDictionary = new ParameterDictionary(new Dictionary <string, string>()); Icon = item.Icon; ItemUri = item.ItemUri; }
public RenderingItem([CanBeNull] IRenderingContainer renderingContainer, [NotNull] DatabaseUri databaseUri, [NotNull] XElement element) { Assert.ArgumentNotNull(databaseUri, nameof(databaseUri)); Assert.ArgumentNotNull(element, nameof(element)); RenderingContainer = renderingContainer; Name = element.GetAttributeValue("name"); Cacheable = element.GetAttributeValue("cac") == @"1"; Conditions = element.GetAttributeValue("cnd"); DataSource = element.GetAttributeValue("ds"); ItemId = element.GetAttributeValue("id"); MultiVariateTests = element.GetAttributeValue("mvt"); Parameters = element.GetAttributeValue("par"); PlaceholderKey = new PlaceHolderKey(element.GetAttributeValue("ph")); UniqueId = element.GetAttributeValue("uid"); VaryByData = element.GetAttributeValue("vbd") == @"1"; VaryByDevice = element.GetAttributeValue("vbdev") == @"1"; VaryByLogin = element.GetAttributeValue("vbl") == @"1"; VaryByParameters = element.GetAttributeValue("vbp") == @"1"; VaryByQueryString = element.GetAttributeValue("vbqs") == @"1"; VaryByUser = element.GetAttributeValue("vbu") == @"1"; Ruleset = element.GetAttributeValue("rls"); ParameterDictionary = new ParameterDictionary(new Dictionary <string, string>()); PlaceHolders = element.GetAttributeValue("placeholders"); DataSourceLocation = element.GetAttributeValue("dsl"); DataSourceTemplate = element.GetAttributeValue("dst"); FilePath = element.GetAttributeValue("path"); ParameterTemplateId = element.GetAttributeValue("templateid"); ItemUri = ItemUri.Empty; Icon = new Icon(databaseUri.Site, element.GetAttributeValue("ic")); SpeakCoreVersion = element.GetAttributeValue("speakcoreversion"); SpeakCoreVersionId = element.GetAttributeValue("speakcoreversionid"); if (!string.IsNullOrEmpty(ItemId)) { ItemUri = new ItemUri(databaseUri, new ItemId(new Guid(ItemId))); } var parameterValues = new UrlString(Parameters); foreach (string key in parameterValues.Parameters.Keys) { ParameterDictionary.Parameters[key] = parameterValues.Parameters[key]; } var templateElement = element.Element("template"); if (templateElement != null) { ParseTemplate(templateElement); } }
private void ApplyDefaultParameters([NotNull] XElement templateElement) { Debug.ArgumentNotNull(templateElement, nameof(templateElement)); PlaceHolders = templateElement.GetAttributeValue("placeholders"); var defaultParameters = templateElement.GetAttributeValue("parameters"); if (string.IsNullOrEmpty(defaultParameters)) { return; } var parameterValues = new UrlString(Parameters); var p = new UrlString(defaultParameters); foreach (string key in p.Parameters.Keys) { switch (key.ToUpperInvariant()) { case "PLACEHOLDER": PlaceholderKey = new PlaceHolderKey(p.Parameters[key]); break; case "DATASOURCE": DataSource = p.Parameters[key]; break; default: parameterValues.Parameters[key] = p.Parameters[key]; break; } } parameters = parameterValues.ToString(); }