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);
                        }
                    }
                });
            }
        });
    }