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); }
private ItemDefinition CreateDefinition(Type contentType, string templateName) { ItemDefinition definition = new ItemDefinition(contentType); definition.Template = templateName; definition.Initialize(contentType); SetDefinition(contentType, templateName, definition); return definition; }
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; }