private void DefineContentPart(ContentPartDefinition partDefinition, bool isDefaultPart = false) { _contentDefinitionManager.AlterPartDefinition($"{partDefinition.Name}{(isDefaultPart ? "" : "Part")}", part => { foreach (var fieldDefinition in partDefinition.ContentFields) { part.WithField(fieldDefinition.Name, field => { field.OfType(fieldDefinition.Type); if (!String.IsNullOrEmpty(fieldDefinition.DisplayName)) { field.WithDisplayName(fieldDefinition.DisplayName); } if (!String.IsNullOrEmpty(fieldDefinition.Description)) { field.WithDescription(fieldDefinition.Description); } if (fieldDefinition.Settings is object) { if (fieldDefinition.Type == ContentFieldTypes.TextField) { field.WithSettings((TextFieldSettings)fieldDefinition.Settings); } else if (fieldDefinition.Type == ContentFieldTypes.DateField) { field.WithSettings((DateFieldSettings)fieldDefinition.Settings); } else if (fieldDefinition.Type == ContentFieldTypes.DateTimeField) { field.WithSettings((DateTimeFieldSettings)fieldDefinition.Settings); } else if (fieldDefinition.Type == ContentFieldTypes.BooleanField) { field.WithSettings((BooleanFieldSettings)fieldDefinition.Settings); } else if (fieldDefinition.Type == ContentFieldTypes.ContentPickerField) { field.WithSettings((ContentPickerFieldSettings)fieldDefinition.Settings); } } }); } }); }