public static ContentTypeDefinition Import(this IContentDefinitionReader reader, XElement source) { var target = new ContentTypeDefinitionBuilder(); reader.Merge(source, target); return(target.Build()); }
public override void TypeEditorUpdated(ContentTypeDefinitionBuilder builder) { var contentTypeDefinition = builder.Build(); var newDisplayName = contentTypeDefinition.DisplayName; var newSettings = contentTypeDefinition.Settings; if (newDisplayName != _oldContentTypeDisplayName) { var eventData = new Dictionary <string, object> { { "ContentTypeName", builder.Current.Name }, { "OldDisplayName", _oldContentTypeDisplayName }, { "NewDisplayName", newDisplayName } }; RecordContentTypeAuditTrail(ContentTypeAuditTrailEventProvider.TypeDisplayNameUpdated, eventData, contentTypeDefinition.Name); } if (!AreEqual(newSettings, _oldContentTypeSettings)) { var eventData = new Dictionary <string, object> { { "ContentTypeName", builder.Current.Name }, { "OldSettings", ToXml(_oldContentTypeSettings) }, { "NewSettings", ToXml(newSettings) } }; RecordContentTypeAuditTrail(ContentTypeAuditTrailEventProvider.TypeSettingsUpdated, eventData, contentTypeDefinition.Name); } }
public static void AlterTypeDefinition(this IContentDefinitionManager manager, string name, Action <ContentTypeDefinitionBuilder> alteration) { var typeDefinition = manager.LoadTypeDefinition(name) ?? new ContentTypeDefinition(name, name.CamelFriendly()); var builder = new ContentTypeDefinitionBuilder(typeDefinition); alteration(builder); manager.StoreTypeDefinition(builder.Build()); }
public static async Task AlterTypeDefinitionAsync(this IContentDefinitionManager manager, string name, Func <ContentTypeDefinitionBuilder, Task> alterationAsync) { var typeDefinition = manager.LoadTypeDefinition(name) ?? new ContentTypeDefinition(name, name.CamelFriendly()); var builder = new ContentTypeDefinitionBuilder(typeDefinition); await alterationAsync(builder); manager.StoreTypeDefinition(builder.Build()); }
public void AttributesAreAppliedAsSettings() { var builder = new ContentTypeDefinitionBuilder(); _reader.Merge(new XElement("foo", new XAttribute("x", "1")), builder); var type = builder.Build(); Assert.That(type.Settings["x"], Is.EqualTo("1")); }
public void ReadingElementSetsName() { var builder = new ContentTypeDefinitionBuilder(); _reader.Merge(new XElement("foo"), builder); var type = builder.Build(); Assert.That(type.Name, Is.EqualTo("foo")); }
public void ChildElementsAreAddedAsPartsWithSettings() { var builder = new ContentTypeDefinitionBuilder(); _reader.Merge(new XElement("foo", new XElement("bar", new XAttribute("y", "2"))), builder); var type = builder.Build(); Assert.That(type.Parts.Single().PartDefinition.Name, Is.EqualTo("bar")); Assert.That(type.Parts.Single().Settings["y"], Is.EqualTo("2")); }
/// <summary> /// Removes any custom placement for a specific shape /// </summary> public static ContentTypeDefinitionBuilder ResetPlacement(this ContentTypeDefinitionBuilder builder, PlacementType placementType, string shapeType, string differentiator) { var serializer = new JavaScriptSerializer(); var placementSettings = GetPlacement(builder.Build(), placementType).ToList(); placementSettings = placementSettings.Where(x => x.ShapeType != shapeType && x.Differentiator != differentiator).ToList(); var placement = serializer.Serialize(placementSettings.ToArray()); return(builder.WithSetting("ContentTypeSettings.Placement." + placementType, placement)); }
public void PartsCanBeRemovedByNameWhenImporting() { const string partToBeRemoved = "alpha"; var builder = new ContentTypeDefinitionBuilder(); _reader.Merge(new XElement("foo", new XElement(partToBeRemoved), new XElement("remove", new XAttribute("name", partToBeRemoved)) ), builder); var type = builder.Build(); Assert.That(type.Parts.FirstOrDefault(part => part.PartDefinition.Name == partToBeRemoved), Is.Null); }
/// <summary> /// Defines a custom placement /// </summary> public static ContentTypeDefinitionBuilder Placement(this ContentTypeDefinitionBuilder builder, PlacementType placementType, string shapeType, string differentiator, string zone, string position) { var placement = AddPlacement(builder.Build(), placementType, shapeType, differentiator, zone, position); return(builder.WithSetting("ContentTypeSettings.Placement." + placementType, placement)); }