private void Apply(ContentTypePartDefinition model, ContentTypePartDefinitionRecord record) { record.Settings = model.Settings; }
ContentTypePartDefinition Build(ContentTypePartDefinitionRecord source) { var partDefinitionRecord = GetContentDefinitionRecord().ContentPartDefinitionRecords.FirstOrDefault(x => x.Name == source.Name); return source == null ? null : new ContentTypePartDefinition( Build(partDefinitionRecord) ?? new ContentPartDefinition(source.Name, Enumerable.Empty<ContentPartFieldDefinition>(), new Newtonsoft.Json.Linq.JObject()), source.Settings); }
private void Apply(ContentTypeDefinition model, ContentTypeDefinitionRecord record) { record.DisplayName = model.DisplayName; record.Settings = model.Settings; var toRemove = record.ContentTypePartDefinitionRecords .Where(partDefinitionRecord => !model.Parts.Any(part => partDefinitionRecord.Name == part.PartDefinition.Name)) .ToList(); foreach (var remove in toRemove) { record.ContentTypePartDefinitionRecords.Remove(remove); } foreach (var part in model.Parts) { var partName = part.PartDefinition.Name; var typePartRecord = record.ContentTypePartDefinitionRecords.FirstOrDefault(r => r.Name == partName); if (typePartRecord == null) { typePartRecord = new ContentTypePartDefinitionRecord(part.PartDefinition.Name); record.ContentTypePartDefinitionRecords.Add(typePartRecord); } Apply(part, typePartRecord); } // Persist changes UpdateContentDefinitionRecord(); }