Esempio n. 1
0
        public void GivenPageTypePropertyDefinition_CreateNewPageDefinition_ReturnsPageDefinitionWithCorrectName()
        {
            PageTypePropertyUpdater    utility    = CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod();
            PageTypePropertyDefinition definition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            PageDefinition returnedPageDefintion = utility.CreateNewPageDefinition(definition);

            Assert.Equal <string>(definition.Name, returnedPageDefintion.Name);
        }
Esempio n. 2
0
        public void GivenPageTypePropertyDefinition_CreateNewPageDefinition_CallsSetPageDefinitionTypeMethod()
        {
            PageTypePropertyUpdater    partiallyMockedUtility     = CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod();
            PageTypePropertyDefinition pageTypePropertyDefinition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            PageDefinition returnedPageDefintion = partiallyMockedUtility.CreateNewPageDefinition(pageTypePropertyDefinition);

            partiallyMockedUtility.AssertWasCalled(utility => utility.SetPageDefinitionType(returnedPageDefintion, pageTypePropertyDefinition));
        }
Esempio n. 3
0
        public void GivenPageTypePropertyDefinition_CreateNewPageDefinition_SavesPageDefinition()
        {
            PageTypePropertyUpdater    utility    = CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod();
            PageTypePropertyDefinition definition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            PageDefinition returnedPageDefinition = utility.CreateNewPageDefinition(definition);

            utility.PageDefinitionFactory.AssertWasCalled(factory => factory.Save(returnedPageDefinition));
        }
Esempio n. 4
0
        public void GivenPropertyDefinitionWithNoHelpText_UpdatePageDefinitionValues_SetsHelpTextToEmptyString()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(string.Empty, pageDefinitionToUpdate.HelpText);
        }
        public void GivenPageTypePropertyDefinitionWithNoEditCaption_GetEditCaptionOrName_ReturnsName()
        {
            string propertyName = TestValueUtility.CreateRandomString();
            PageTypePropertyDefinition definition =
                new PageTypePropertyDefinition(propertyName, typeof(string), new NativePageType(), new PageTypePropertyAttribute());

            string returnedEditCaption = definition.GetEditCaptionOrName();

            Assert.Equal <string>(propertyName, returnedEditCaption);
        }
Esempio n. 6
0
        public void GivenPageTypePropertyDefinitionWithEditCaption_CreateNewPageDefinition_SetsEditCaptionToDefinitionEditCaption()
        {
            PageTypePropertyUpdater    partiallyMockedUtility     = CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod();
            PageTypePropertyDefinition pageTypePropertyDefinition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            pageTypePropertyDefinition.PageTypePropertyAttribute.EditCaption = TestValueUtility.CreateRandomString();

            PageDefinition returnedPageDefintion = partiallyMockedUtility.CreateNewPageDefinition(pageTypePropertyDefinition);

            Assert.Equal <string>(pageTypePropertyDefinition.PageTypePropertyAttribute.EditCaption, returnedPageDefintion.EditCaption);
        }
        public void GivenPageTypePropertyDefinitionWithNoTypeAndNonMappedPropertyType_GetPageDefinitionType_ThrowsException()
        {
            PageDefinitionTypeMapper mapper = new PageDefinitionTypeMapper(null);
            Type unmappedType = typeof(StringBuilder);
            PageTypePropertyDefinition definition = new PageTypePropertyDefinition(
                TestValueUtility.CreateRandomString(), unmappedType, new NativePageType(), new PageTypePropertyAttribute());

            Exception exception = Record.Exception(() => { mapper.GetPageDefinitionType(definition); });

            Assert.NotNull(exception);
        }
        public void GivenPageTypePropertyDefinitionWithTypeSet_GetPropertyType_ReturnsThatType()
        {
            PageDefinitionTypeMapper   mapper     = new PageDefinitionTypeMapper(null);
            PageTypePropertyDefinition definition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            definition.PageTypePropertyAttribute.Type = typeof(PropertyImageUrl);

            Type returnedType = mapper.GetPropertyType(definition.PropertyType, definition.PageTypePropertyAttribute);

            Assert.Equal <Type>(definition.PageTypePropertyAttribute.Type, returnedType);
        }
Esempio n. 9
0
        public static string GetEditCaptionOrName(this PageTypePropertyDefinition pageTypePropertyDefinition)
        {
            string editCaption = pageTypePropertyDefinition.PageTypePropertyAttribute.EditCaption;

            if (string.IsNullOrEmpty(editCaption))
            {
                editCaption = pageTypePropertyDefinition.Name;
            }

            return(editCaption);
        }
Esempio n. 10
0
        public void GivenPropertyDefinition_UpdatePageDefinitionValues_CallsUpdatePageDefinitionTab()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            pageTypePropertyUpdater.AssertWasCalled(
                utility => utility.UpdatePageDefinitionTab(pageDefinitionToUpdate, propertyDefinition.PageTypePropertyAttribute));
        }
        public void GivePropertyDefinition_UpdatePageDefinition_UpdatesPageDefinitionDisplayEditMode(bool displayInEditMode)
        {
            var                        pageDefinitionUpdater  = GetPageDefinitionUpdater();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.DisplayInEditMode = displayInEditMode;

            pageDefinitionUpdater.UpdateExistingPageDefinition(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.DisplayInEditMode, pageDefinitionToUpdate.DisplayEditUI);
        }
Esempio n. 12
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionSearchable(bool searchable)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.Searchable = searchable;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.Searchable, pageDefinitionToUpdate.Searchable);
        }
        public void GivePropertyDefinition_UpdatePageDefinition_UpdatesPageDefinitionDefaultValueType(DefaultValueType defaultValueType)
        {
            var                        pageDefinitionUpdater  = GetPageDefinitionUpdater();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.DefaultValueType = defaultValueType;

            pageDefinitionUpdater.UpdateExistingPageDefinition(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <DefaultValueType>(propertyDefinition.PageTypePropertyAttribute.DefaultValueType, pageDefinitionToUpdate.DefaultValueType);
        }
        public void GivePropertyDefinition_UpdatePageDefinition_UpdatesPageDefinitionDefaultValue()
        {
            var                        pageDefinitionUpdater  = GetPageDefinitionUpdater();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.DefaultValue = TestValueUtility.CreateRandomString();

            pageDefinitionUpdater.UpdateExistingPageDefinition(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(propertyDefinition.PageTypePropertyAttribute.DefaultValue.ToString(), pageDefinitionToUpdate.DefaultValue);
        }
        public void GivePropertyDefinition_UpdatePageDefinition_UpdatesPageDefinitionRequired(bool required)
        {
            var                        pageDefinitionUpdater  = GetPageDefinitionUpdater();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.Required = required;

            pageDefinitionUpdater.UpdateExistingPageDefinition(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.Required, pageDefinitionToUpdate.Required);
        }
Esempio n. 16
0
        public void GivePropertyDefinitionWithNoLongStringSettings_UpdatePageDefinitionValues_SetLongStringSettingsToAll()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <EditorToolOption>(
                EditorToolOption.All,
                pageDefinitionToUpdate.LongStringSettings);
        }
Esempio n. 17
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionDisplayEditMode(bool displayInEditMode)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.DisplayInEditMode = displayInEditMode;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.DisplayInEditMode, pageDefinitionToUpdate.DisplayEditUI);
        }
Esempio n. 18
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionFieldOrder(int sortOrder)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.SortOrder = sortOrder;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <int>(propertyDefinition.PageTypePropertyAttribute.SortOrder, pageDefinitionToUpdate.FieldOrder);
        }
Esempio n. 19
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionLanguageSpecific(bool uniqueValuePerLanguage)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.UniqueValuePerLanguage = uniqueValuePerLanguage;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.UniqueValuePerLanguage, pageDefinitionToUpdate.LanguageSpecific);
        }
Esempio n. 20
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionDefaultValueType(DefaultValueType defaultValueType)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.DefaultValueType = defaultValueType;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <DefaultValueType>(propertyDefinition.PageTypePropertyAttribute.DefaultValueType, pageDefinitionToUpdate.DefaultValueType);
        }
Esempio n. 21
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionDefaultValue()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.DefaultValue = TestValueUtility.CreateRandomString();

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(propertyDefinition.PageTypePropertyAttribute.DefaultValue.ToString(), pageDefinitionToUpdate.DefaultValue);
        }
        public void GivePropertyDefinition_UpdatePageDefinition_UpdatesPageDefinitionFieldOrder(int sortOrder)
        {
            var                        pageDefinitionUpdater  = GetPageDefinitionUpdater();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.SortOrder = sortOrder;

            pageDefinitionUpdater.UpdateExistingPageDefinition(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <int>(propertyDefinition.PageTypePropertyAttribute.SortOrder, pageDefinitionToUpdate.FieldOrder);
        }
        public void GivePropertyDefinitionWithNoEditCaption_UpdatePageDefinition_SetsPageDefinitionEditCaptionToName()
        {
            var                        pageDefinitionUpdater  = GetPageDefinitionUpdater();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.EditCaption = null;

            pageDefinitionUpdater.UpdateExistingPageDefinition(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(propertyDefinition.Name, pageDefinitionToUpdate.EditCaption);
        }
        public void GivenPropertyDefinitionWithNoHelpText_UpdatePageDefinition_SetsHelpTextToEmptyString()
        {
            var                        pageDefinitionUpdater  = GetPageDefinitionUpdater();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.HelpText = null;

            pageDefinitionUpdater.UpdateExistingPageDefinition(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(string.Empty, pageDefinitionToUpdate.HelpText);
        }
        public void GivePropertyDefinition_UpdatePageDefinition_UpdatesPageDefinitionLanguageSpecific(bool uniqueValuePerLanguage)
        {
            var                        pageDefinitionUpdater  = GetPageDefinitionUpdater();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.UniqueValuePerLanguage = uniqueValuePerLanguage;

            pageDefinitionUpdater.UpdateExistingPageDefinition(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.UniqueValuePerLanguage, pageDefinitionToUpdate.LanguageSpecific);
        }
        public void GivePropertyDefinition_UpdatePageDefinition_UpdatesPageDefinitionSearchable(bool searchable)
        {
            var                        pageDefinitionUpdater  = GetPageDefinitionUpdater();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.Searchable = searchable;

            pageDefinitionUpdater.UpdateExistingPageDefinition(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.Searchable, pageDefinitionToUpdate.Searchable);
        }
Esempio n. 27
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionRequired(bool required)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.Required = required;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.Required, pageDefinitionToUpdate.Required);
        }
Esempio n. 28
0
        public void GivePropertyDefinitionWithNoEditCaption_UpdatePageDefinitionValues_SetsPageDefinitionEditCaptionToName()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.EditCaption = null;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(propertyDefinition.Name, pageDefinitionToUpdate.EditCaption);
        }
Esempio n. 29
0
        public void GivenType_Constructor_SetsPropertyTypeProperty()
        {
            PageTypePropertyAttribute attribute = new PageTypePropertyAttribute();
            string    name         = TestValueUtility.CreateRandomString();
            Type      propertyType = typeof(string);
            IPageType pageType     = new NativePageType();

            PageTypePropertyDefinition definition = new PageTypePropertyDefinition(name, propertyType, pageType, attribute);


            Assert.Equal <Type>(propertyType, definition.PropertyType);
        }
Esempio n. 30
0
        public void GivenPropertyDefinition_UpdatePageDefinition_CallsUpdatePageDefinitionValues()
        {
            PageTypePropertyUpdater pageTypePropertyUpdater =
                CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakeUpdatePageDefinitionValuesMethod();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            pageTypePropertyUpdater.UpdatePageDefinition(pageDefinitionToUpdate, propertyDefinition);

            pageTypePropertyUpdater.AssertWasCalled(
                utility => utility.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition));
        }
        public virtual void CreateNewPageDefinition(PageTypePropertyDefinition propertyDefinition)
        {
            PageDefinition pageDefinition = new PageDefinition();
            pageDefinition.PageTypeID = propertyDefinition.PageType.ID;
            pageDefinition.Name = propertyDefinition.Name;
            pageDefinition.EditCaption = propertyDefinition.GetEditCaptionOrName(false);
            SetPageDefinitionType(pageDefinition, propertyDefinition);

            newlyCreatedPageDefinitions.Add(GetPageDefinitionKey(pageDefinition));
            UpdatePageDefinitionValues(pageDefinition, propertyDefinition);

            pageDefinitionRepository.Save(pageDefinition);
        }
        public virtual void UpdateExistingPageDefinition(PageDefinition pageDefinition, PageTypePropertyDefinition pageTypePropertyDefinition)
        {
            // LC: Reset default value if no default value type is defined
            if (pageTypePropertyDefinition.PageTypePropertyAttribute.DefaultValueSet && pageTypePropertyDefinition.PageTypePropertyAttribute.DefaultValueType == DefaultValueType.None || pageTypePropertyDefinition.PageTypePropertyAttribute.DefaultValueType == DefaultValueType.Inherit)
                pageTypePropertyDefinition.PageTypePropertyAttribute.DefaultValue = null;

            string oldValues = SerializeValues(pageDefinition);

            UpdatePageDefinitionValues(pageDefinition, pageTypePropertyDefinition);

            // LC: Change to follow logic in PageDefintion.Save for resetting default values and default value types
            HandleDefaultValues(pageDefinition);

            string updatedValues = SerializeValues(pageDefinition);

            if (updatedValues == oldValues) 
                return;

            log.Debug(string.Format("Updating PageDefintion, old values: {0}, new values: {1}.", oldValues, updatedValues));
                
            using (new TimingsLogger(string.Format("Updating page definition '{0}', page type: {1}{2}{3}{2}{4}", pageDefinition.Name, pageDefinition.PageTypeID, Environment.NewLine, oldValues, updatedValues)))
            {
                pageDefinitionRepository.Save(pageDefinition);
            }

            updatedPageDefinitions.Add(pageDefinition.ID);
        }
 protected internal virtual PageDefinitionType GetPageDefinitionType(PageTypePropertyDefinition definition)
 {
     return pageDefinitionTypeMapper.GetPageDefinitionType(definition);
 }
 protected internal virtual void SetPageDefinitionType(PageDefinition pageDefinition, PageTypePropertyDefinition propertyDefinition)
 {
     pageDefinition.Type = GetPageDefinitionType(propertyDefinition);
 }
        protected virtual void UpdatePageDefinitionValues(PageDefinition pageDefinition, PageTypePropertyDefinition pageTypePropertyDefinition)
        {
            UpdatePageDefinitionValues(pageDefinition, pageTypePropertyDefinition, false);

            if (pageTypePropertyDefinition.PageTypePropertyGroupPropertyOverrideAttribute != null)
                UpdatePageDefinitionValues(pageDefinition, pageTypePropertyDefinition, true);
        }
        protected virtual void UpdatePageDefinitionValues(PageDefinition pageDefinition, PageTypePropertyDefinition pageTypePropertyDefinition,
            bool propertyGroupOverride)
        {
            if (!propertyGroupOverride)
                pageDefinition.Name = pageTypePropertyDefinition.Name;

            PageTypePropertyAttribute propertyAttribute = propertyGroupOverride
                                                              ? pageTypePropertyDefinition.PageTypePropertyGroupPropertyOverrideAttribute
                                                              : pageTypePropertyDefinition.PageTypePropertyAttribute;

            if (!propertyGroupOverride)
            {
                var specifiedType = GetPageDefinitionType(pageTypePropertyDefinition);
                var currentType = pageDefinition.Type;

                if (specifiedType.DataType == currentType.DataType)
                    pageDefinition.Type = specifiedType;

                if (CanModifyProperty(pageDefinition, propertyAttribute.TabSet))
                    UpdatePageDefinitionTab(pageDefinition, propertyAttribute);

                if (CanModifyProperty(pageDefinition, propertyAttribute.SortOrderSet))
                    pageDefinition.FieldOrder = GetFieldOrder(pageDefinition, propertyAttribute);
            }

            if (CanModifyProperty(pageDefinition, propertyAttribute.EditCaptionSet))
                pageDefinition.EditCaption = pageTypePropertyDefinition.GetEditCaptionOrName(propertyGroupOverride);
            else if (!propertyAttribute.EditCaptionSet && string.IsNullOrEmpty(pageDefinition.EditCaption))
                pageDefinition.EditCaption = pageTypePropertyDefinition.GetEditCaptionOrName(propertyGroupOverride);

            if (CanModifyProperty(pageDefinition, propertyAttribute.HelpTextSet))
                pageDefinition.HelpText = propertyAttribute.HelpText ?? string.Empty;

            if (CanModifyProperty(pageDefinition, propertyAttribute.RequiredSet))
                pageDefinition.Required = propertyAttribute.Required;

            if (CanModifyProperty(pageDefinition, propertyAttribute.SearchableSet))
                pageDefinition.Searchable = propertyAttribute.Searchable;

            if (CanModifyProperty(pageDefinition, propertyAttribute.DefaultValueSet))
                pageDefinition.DefaultValue = propertyAttribute.DefaultValue != null ? propertyAttribute.DefaultValue.ToString() : string.Empty;

            if (CanModifyProperty(pageDefinition, propertyAttribute.DefaultValueTypeSet))
                pageDefinition.DefaultValueType = propertyAttribute.DefaultValueType;

            if (CanModifyProperty(pageDefinition, propertyAttribute.UniqueValuePerLanguageSet))
                pageDefinition.LanguageSpecific = propertyAttribute.UniqueValuePerLanguage;

            if (CanModifyProperty(pageDefinition, propertyAttribute.DisplayInEditModeSet))
                pageDefinition.DisplayEditUI = propertyAttribute.DisplayInEditMode;
        }