ContentTypeDefinition Build(ContentTypeDefinitionRecord source) { return source == null ? null : new ContentTypeDefinition( source.Name, source.DisplayName, source.ContentTypePartDefinitionRecords.Select(Build), source.Settings); }
private ContentTypeDefinitionRecord Acquire(ContentTypeDefinition contentTypeDefinition) { var result = GetContentDefinitionRecord().ContentTypeDefinitionRecords.SingleOrDefault(x => x.Name == contentTypeDefinition.Name); if (result == null) { result = new ContentTypeDefinitionRecord { Name = contentTypeDefinition.Name, DisplayName = contentTypeDefinition.DisplayName }; GetContentDefinitionRecord().ContentTypeDefinitionRecords.Add(result); } return result; }
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.ContentPartDefinitionRecord.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.SingleOrDefault(r => r.ContentPartDefinitionRecord.Name == partName); if (typePartRecord == null) { typePartRecord = new ContentTypePartDefinitionRecord { ContentPartDefinitionRecord = Acquire(part.PartDefinition) }; record.ContentTypePartDefinitionRecords.Add(typePartRecord); } Apply(part, typePartRecord); } // Persist changes _session.Save(_contentDefinitionRecord); }
ContentTypeDefinition Build(ContentTypeDefinitionRecord source) { return new ContentTypeDefinition( source.Name, source.DisplayName, source.ContentTypePartDefinitionRecords.Select(Build), _settingsFormatter.Map(Parse(source.Settings))); }
private void Apply(ContentTypeDefinition model, ContentTypeDefinitionRecord record) { record.DisplayName = model.DisplayName; record.Settings = _settingsFormatter.Map(model.Settings).ToString(); var toRemove = record.ContentTypePartDefinitionRecords .Where(partDefinitionRecord => model.Parts.All(part => partDefinitionRecord.ContentPartDefinitionRecord.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.SingleOrDefault(r => r.ContentPartDefinitionRecord.Name == partName); if (typePartRecord == null) { typePartRecord = new ContentTypePartDefinitionRecord { ContentPartDefinitionRecord = Acquire(part.PartDefinition) }; record.ContentTypePartDefinitionRecords.Add(typePartRecord); } Apply(part, typePartRecord); } }
private ContentTypeDefinitionRecord Acquire(ContentTypeDefinition contentTypeDefinition) { var result = _typeDefinitionRepository.Table.SingleOrDefault(x => x.Name == contentTypeDefinition.Name); if (result == null) { result = new ContentTypeDefinitionRecord { Name = contentTypeDefinition.Name, DisplayName = contentTypeDefinition.DisplayName }; _typeDefinitionRepository.Create(result); } return result; }
private ContentTypeDefinitionRecord Acquire(ContentTypeDefinition contentTypeDefinition) { var result = _contentStorageManager .Query<ContentTypeDefinitionRecord>(x => x.Name == contentTypeDefinition.Name) .SingleOrDefault(); if (result == null) { result = new ContentTypeDefinitionRecord { Name = contentTypeDefinition.Name, DisplayName = contentTypeDefinition.DisplayName }; _contentStorageManager.Store(result); } return result; }
ContentTypeDefinition Build(ContentTypeDefinitionRecord source) { return source == null ? null : new ContentTypeDefinition( source.Name, source.DisplayName, source.ContentTypePartDefinitionRecords.Select(Build), JsonConvert.DeserializeObject<SettingsDictionary>(source.Settings ?? "{ }")); }