예제 #1
0
        private void Apply(ContentPartDefinition model, ContentPartDefinitionRecord record)
        {
            record.Settings = model.Settings;

            var toRemove = record.ContentPartFieldDefinitionRecords
                           .Where(partFieldDefinitionRecord => !model.Fields.Any(partField => partFieldDefinitionRecord.Name == partField.Name))
                           .ToList();

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

            foreach (var field in model.Fields)
            {
                var fieldName       = field.Name;
                var partFieldRecord = record.ContentPartFieldDefinitionRecords.FirstOrDefault(r => r.Name == fieldName);
                if (partFieldRecord == null)
                {
                    partFieldRecord = new ContentPartFieldDefinitionRecord
                    {
                        FieldName = field.FieldDefinition.Name,
                        Name      = field.Name
                    };
                    record.ContentPartFieldDefinitionRecords.Add(partFieldRecord);
                }
                Apply(field, partFieldRecord);
            }
        }
예제 #2
0
 ContentPartDefinition Build(ContentPartDefinitionRecord source)
 {
     return(source == null ? null : new ContentPartDefinition(
                source.Name,
                source.ContentPartFieldDefinitionRecords.Select(Build),
                source.Settings));
 }
        private void Apply(ContentPartDefinition model, ContentPartDefinitionRecord record)
        {
            record.Settings = Compose(_settingsFormatter.Map(model.Settings));

            var toRemove = record.ContentPartFieldDefinitionRecords
                           .Where(partFieldDefinitionRecord => model.Fields.All(partField => partFieldDefinitionRecord.Name != partField.Name))
                           .ToList();

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

            foreach (var field in model.Fields)
            {
                var fieldName       = field.Name;
                var partFieldRecord = record.ContentPartFieldDefinitionRecords.SingleOrDefault(r => r.Name == fieldName);
                if (partFieldRecord == null)
                {
                    partFieldRecord = new ContentPartFieldDefinitionRecord {
                        ContentFieldDefinitionRecord = Acquire(field.FieldDefinition),
                        Name = field.Name
                    };
                    record.ContentPartFieldDefinitionRecords.Add(partFieldRecord);
                }
                Apply(field, partFieldRecord);
            }
        }
 ContentPartDefinition Build(ContentPartDefinitionRecord source)
 {
     return(new ContentPartDefinition(
                source.Name,
                source.ContentPartFieldDefinitionRecords.Select(Build),
                _settingsFormatter.Map(Parse(source.Settings))));
 }
 ContentTypePartDefinition Build(ContentTypePartDefinitionRecord source, ContentPartDefinitionRecord partDefinitionRecord)
 {
     return(source == null ? null : new ContentTypePartDefinition(
                source.Name,
                Build(partDefinitionRecord) ?? new ContentPartDefinition(source.PartName, Enumerable.Empty <ContentPartFieldDefinition>(), new JObject()),
                source.Settings));
 }
예제 #6
0
 ContentPartDefinition Build(ContentPartDefinitionRecord source)
 {
     return(source == null ? null : new ContentPartDefinition(
                source.Name,
                source.ContentPartFieldDefinitionRecords.Select(Build),
                JsonConvert.DeserializeObject <SettingsDictionary>(source.Settings ?? "{ }")));
 }
예제 #7
0
        private void Apply(ContentPartDefinition model, ContentPartDefinitionRecord record)
        {
            record.Settings = JsonConvert.SerializeObject(model.Settings);

            var toRemove = record.ContentPartFieldDefinitionRecords
                           .Where(partFieldDefinitionRecord => !model.Fields.Any(partField => partFieldDefinitionRecord.Name == partField.Name))
                           .ToList();

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

            foreach (var field in model.Fields)
            {
                var fieldName       = field.Name;
                var partFieldRecord = record.ContentPartFieldDefinitionRecords.SingleOrDefault(r => r.Name == fieldName);
                if (partFieldRecord == null)
                {
                    partFieldRecord = new ContentPartFieldDefinitionRecord
                    {
                        ContentFieldDefinitionRecord = Acquire(field.FieldDefinition),
                        Name = field.Name
                    };
                    record.ContentPartFieldDefinitionRecords.Add(partFieldRecord);
                }
                Apply(field, partFieldRecord);
            }
        }
예제 #8
0
        private ContentPartDefinitionRecord Acquire(ContentPartDefinition contentPartDefinition)
        {
            var result = GetContentDefinitionRecord().ContentPartDefinitionRecords.FirstOrDefault(x => x.Name == contentPartDefinition.Name);

            if (result == null)
            {
                result = new ContentPartDefinitionRecord {
                    Name = contentPartDefinition.Name,
                };
                GetContentDefinitionRecord().ContentPartDefinitionRecords.Add(result);
            }
            return(result);
        }
        private ContentPartDefinitionRecord Acquire(ContentPartDefinition contentPartDefinition)
        {
            var result = _partDefinitionRepository.Table.SingleOrDefault(x => x.Name == contentPartDefinition.Name);

            if (result == null)
            {
                result = new ContentPartDefinitionRecord {
                    Name = contentPartDefinition.Name
                };
                _partDefinitionRepository.Create(result);
            }
            return(result);
        }
예제 #10
0
        private ContentPartDefinitionRecord Acquire(ContentPartDefinition contentPartDefinition)
        {
            var result = _contentStorageManager
                         .Query <ContentPartDefinitionRecord>(x => x.Name == contentPartDefinition.Name)
                         .SingleOrDefault();

            if (result == null)
            {
                result = new ContentPartDefinitionRecord {
                    Name = contentPartDefinition.Name
                };
                _contentStorageManager.Store(result);
            }
            return(result);
        }
        private void AlterContentPart(ContentPartDefinitionRecord record)
        {
            _contentDefinitionManager.AlterPartDefinition(record.Name, builder =>
            {
                builder.MergeSettings(record.Settings);

                foreach (var field in record.ContentPartFieldDefinitionRecords)
                {
                    builder.WithField(field.Name, fieldBuilder =>
                    {
                        fieldBuilder.OfType(field.FieldName);
                        fieldBuilder.MergeSettings(field.Settings);
                    });
                }
            });
        }
예제 #12
0
        private void ReplaceContentPart(ContentPartDefinition part, ContentPartDefinitionRecord record, bool exists)
        {
            if (exists)
            {
                _contentDefinitionManager.DeletePartDefinition(part.Name);
            }

            _contentDefinitionManager.AlterPartDefinition(part.Name, builder =>
            {
                builder.MergeSettings(record.Settings);

                foreach (var field in record.ContentPartFieldDefinitionRecords)
                {
                    builder.WithField(field.Name, fieldBuilder =>
                    {
                        fieldBuilder.OfType(field.FieldName);
                        fieldBuilder.MergeSettings(field.Settings);
                    });
                }
            });
        }
예제 #13
0
 ContentPartDefinition Build(ContentPartDefinitionRecord source)
 {
     return source == null ? null : new ContentPartDefinition(
         source.Name,
         source.ContentPartFieldDefinitionRecords.Select(Build),
         source.Settings);
 }
예제 #14
0
        private void Apply(ContentPartDefinition model, ContentPartDefinitionRecord record)
        {
            record.Settings = model.Settings;

            var toRemove = record.ContentPartFieldDefinitionRecords
                .Where(partFieldDefinitionRecord => !model.Fields.Any(partField => partFieldDefinitionRecord.Name == partField.Name))
                .ToList();

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

            foreach (var field in model.Fields)
            {
                var fieldName = field.Name;
                var partFieldRecord = record.ContentPartFieldDefinitionRecords.FirstOrDefault(r => r.Name == fieldName);
                if (partFieldRecord == null)
                {
                    partFieldRecord = new ContentPartFieldDefinitionRecord
                    {
                        ContentFieldDefinitionRecord = Acquire(field.FieldDefinition),
                        Name = field.Name
                    };
                    record.ContentPartFieldDefinitionRecords.Add(partFieldRecord);
                }
                Apply(field, partFieldRecord);
            }
        }
예제 #15
0
 private ContentPartDefinitionRecord Acquire(ContentPartDefinition contentPartDefinition)
 {
     var result = GetContentDefinitionRecord().ContentPartDefinitionRecords.FirstOrDefault(x => x.Name == contentPartDefinition.Name);
     if (result == null)
     {
         result = new ContentPartDefinitionRecord { Name = contentPartDefinition.Name, };
         GetContentDefinitionRecord().ContentPartDefinitionRecords.Add(result);
     }
     return result;
 }