private void Apply(ContentTypeDefinition model, ContentTypeDefinitionRecord record)
        {
            record.DisplayName = model.DisplayName;
            record.Settings    = model.Settings;

            var toRemove = record.ContentTypePartDefinitionRecords
                           .Where(typePartDefinitionRecord => !model.Parts.Any(part => typePartDefinitionRecord.Name == part.Name))
                           .ToList();

            foreach (var remove in toRemove)
            {
                record.ContentTypePartDefinitionRecords.Remove(remove);
            }

            foreach (var part in model.Parts)
            {
                var typePartRecord = record.ContentTypePartDefinitionRecords.FirstOrDefault(r => r.Name == part.Name);
                if (typePartRecord == null)
                {
                    typePartRecord = new ContentTypePartDefinitionRecord
                    {
                        PartName = part.PartDefinition.Name,
                        Name     = part.Name,
                        Settings = part.Settings
                    };

                    record.ContentTypePartDefinitionRecords.Add(typePartRecord);
                }
                Apply(part, typePartRecord);
            }
        }
        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);
            }
        }
Exemple #3
0
        private void Apply(ContentTypeDefinition model, ContentTypeDefinitionRecord record)
        {
            record.DisplayName = model.DisplayName;
            record.Settings    = JsonConvert.SerializeObject(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);
            }
        }
 ContentTypeDefinition Build(ContentTypeDefinitionRecord source)
 {
     return(new ContentTypeDefinition(
                source.Name,
                source.DisplayName,
                source.ContentTypePartDefinitionRecords.Select(Build),
                _settingsFormatter.Map(Parse(source.Settings))));
 }
Exemple #5
0
 ContentTypeDefinition Build(ContentTypeDefinitionRecord source)
 {
     return(source == null ? null : new ContentTypeDefinition(
                source.Name,
                source.DisplayName,
                source.ContentTypePartDefinitionRecords.Select(Build),
                JsonConvert.DeserializeObject <SettingsDictionary>(source.Settings ?? "{ }")));
 }
 ContentTypeDefinition Build(ContentTypeDefinitionRecord source)
 {
     return(source == null ? null : new ContentTypeDefinition(
                source.Name,
                source.DisplayName,
                source.ContentTypePartDefinitionRecords.Select(Build),
                source.Settings));
 }
Exemple #7
0
        private ContentTypeDefinitionRecord Acquire(ContentTypeDefinition contentTypeDefinition)
        {
            var result = GetContentDefinitionRecord().ContentTypeDefinitionRecords.FirstOrDefault(x => x.Name == contentTypeDefinition.Name);

            if (result == null)
            {
                result = new ContentTypeDefinitionRecord {
                    Name = contentTypeDefinition.Name, DisplayName = contentTypeDefinition.DisplayName
                };
                GetContentDefinitionRecord().ContentTypeDefinitionRecords.Add(result);
            }
            return(result);
        }
        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);
        }
Exemple #9
0
        ContentTypeDefinition Build(ContentTypeDefinitionRecord source)
        {
            if (source == null)
            {
                return(null);
            }

            var contentTypeDefinition = new ContentTypeDefinition(
                source.Name,
                source.DisplayName,
                source.ContentTypePartDefinitionRecords.Select(Build),
                source.Settings);

            return(contentTypeDefinition);
        }
Exemple #10
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, IList <ContentPartDefinitionRecord> partDefinitionRecords)
        {
            if (source == null)
            {
                return(null);
            }

            var contentTypeDefinition = new ContentTypeDefinition(
                source.Name,
                source.DisplayName,
                source.ContentTypePartDefinitionRecords.Select(tp => Build(tp, partDefinitionRecords.FirstOrDefault(p => p.Name == tp.PartName))),
                source.Settings);

            return(contentTypeDefinition);
        }
        private void AlterContentType(ContentTypeDefinitionRecord record)
        {
            _contentDefinitionManager.AlterTypeDefinition(record.Name, builder =>
            {
                if (!String.IsNullOrEmpty(record.DisplayName))
                {
                    builder.DisplayedAs(record.DisplayName);
                    builder.MergeSettings(record.Settings);
                }

                foreach (var part in record.ContentTypePartDefinitionRecords)
                {
                    builder.WithPart(part.Name, part.PartName, partBuilder => partBuilder.MergeSettings(part.Settings));
                }
            });
        }