Exemple #1
0
        private void AddOrUpdateDefinition(List <ItemDefinition> definitions, DefinitionElement element)
        {
            ItemDefinition definition = definitions.Find(d => d.Discriminator == element.Name);

            if (definition == null)
            {
                Type itemType = EnsureType <ContentItem>(element.Type);
                definition.Discriminator = element.Name;
                definition = new ItemDefinition(itemType);
                definition.Initialize(definition.ItemType);

                definitions.Add(definition);
            }
            else
            {
                Type changedType = Type.GetType(element.Type);
                if (changedType != null && changedType != definition.ItemType)
                {
                    definition.ItemType = changedType;
                    definition.Initialize(definition.ItemType);
                }
            }

            UpdateDefinitionFromConfiguration(element, definition);
        }
Exemple #2
0
        private ItemDefinition CreateDefinition(Type contentType, string templateName)
        {
            ItemDefinition definition = new ItemDefinition(contentType);
            definition.Template = templateName;
            definition.Initialize(contentType);

            SetDefinition(contentType, templateName, definition);

            return definition;
        }
Exemple #3
0
        private ItemDefinition CreateDefinition(Type contentType, string templateName)
        {
            ItemDefinition definition = new ItemDefinition(contentType);

            definition.Template = templateName;
            definition.Initialize(contentType);

            SetDefinition(contentType, templateName, definition);

            return(definition);
        }
        public ItemDefinition GetDefinition(Type contentType, string templateName)
        {
            if (contentType == null) throw new ArgumentNullException("contentType");

            string key = contentType.FullName + templateName;

            ItemDefinition definition;
            if (definitions.TryGetValue(key, out definition))
                return definition;

            definition = new ItemDefinition(contentType);
            definition.Template = templateName;
            definition.Initialize(contentType);

            var temp = new Dictionary<string, ItemDefinition>(definitions);
            temp[key] = definition;
            definitions = temp;

            return definition;
        }