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;
 }
Пример #7
0
        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 ?? "{ }"));
 }