// <RemoveContentDefinition> // <Types> // <Blog creatable = "true" > // <Body format="abodyformat"/> // </Blog> // </Types> // <Parts> // </Parts> // </RemoveContentDefinition> public override void Execute(RecipeExecutionContext context) { foreach (var metadataElement in context.RecipeStep.Step.Elements()) { Logger.Debug("Processing element '{0}'.", metadataElement.Name.LocalName); switch (metadataElement.Name.LocalName) { case "Types": foreach (var element in metadataElement.Elements()) { var typeName = XmlConvert.DecodeName(element.Name.LocalName); Logger.Information("Removing content type '{0}'.", typeName); try { _contentDefinitionManager.DeleteTypeDefinition(typeName); _contentDefinitonEventHandlers.ContentTypeRemoved(new ContentTypeRemovedContext { ContentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(typeName) }); } catch (Exception ex) { Logger.Error(ex, "Error while removing content type '{0}'.", typeName); throw; } } break; case "Parts": foreach (var element in metadataElement.Elements()) { var partElement = element; var partName = XmlConvert.DecodeName(element.Name.LocalName); Logger.Information("Removing content part definition '{0}'.", partName); try { _contentDefinitionManager.DeletePartDefinition(partName); _contentDefinitonEventHandlers.ContentPartRemoved(new ContentPartRemovedContext { ContentPartDefinition = _contentDefinitionManager.GetPartDefinition(partName) }); } catch (Exception ex) { Logger.Error(ex, "Error while removing content part definition for '{0}'.", partName); throw; } } break; default: Logger.Warning("Unrecognized element '{0}' encountered; skipping", metadataElement.Name.LocalName); break; } } }
public void RemovePart(string name) { var partDefinition = _contentDefinitionManager.GetPartDefinition(name); var fieldDefinitions = partDefinition.Fields.ToArray(); foreach (var fieldDefinition in fieldDefinitions) { RemoveFieldFromPart(fieldDefinition.Name, name); } _contentDefinitionManager.DeletePartDefinition(name); _contentDefinitionEventHandlers.ContentPartRemoved(new ContentPartRemovedContext { ContentPartDefinition = partDefinition }); }