Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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();
        }