コード例 #1
0
        public PageDefinition GetPageDefinition(string name, string pageTypeName)
        {
            var pageType = PageTypeFactory.Load(pageTypeName);

            return(PageDefinitionFactory.List(pageType.ID)
                   .Where(def => def.Name == name)
                   .FirstOrDefault());
        }
コード例 #2
0
        protected internal virtual void UpdatePageDefinition(PageDefinition pageDefinition, PageTypePropertyDefinition pageTypePropertyDefinition)
        {
            string oldValues = SerializeValues(pageDefinition);

            UpdatePageDefinitionValues(pageDefinition, pageTypePropertyDefinition);

            if (SerializeValues(pageDefinition) != oldValues)
            {
                PageDefinitionFactory.Save(pageDefinition);
            }
        }
コード例 #3
0
        protected internal virtual PageDefinition CreateNewPageDefinition(PageTypePropertyDefinition propertyDefinition)
        {
            PageDefinition pageDefinition = new PageDefinition();

            pageDefinition.PageTypeID  = propertyDefinition.PageType.ID;
            pageDefinition.Name        = propertyDefinition.Name;
            pageDefinition.EditCaption = propertyDefinition.GetEditCaptionOrName();
            SetPageDefinitionType(pageDefinition, propertyDefinition);

            PageDefinitionFactory.Save(pageDefinition);

            return(pageDefinition);
        }
コード例 #4
0
        protected internal virtual void UpdatePropertySettings(PageTypeDefinition pageTypeDefinition, PageTypePropertyDefinition propertyDefinition, PageDefinition pageDefinition)
        {
            var prop =
                pageTypeDefinition.Type.GetProperties().Where(p => p.Name == propertyDefinition.Name).FirstOrDefault
                    ();

            var attributes = prop.GetCustomAttributes(typeof(PropertySettingsAttribute), true);

            foreach (var attribute in attributes)
            {
                PropertySettingsContainer container;

                if (pageDefinition.SettingsID == Guid.Empty)
                {
                    pageDefinition.SettingsID = Guid.NewGuid();
                    PageDefinitionFactory.Save(pageDefinition);
                    container = new PropertySettingsContainer(pageDefinition.SettingsID);
                }
                else
                {
                    if (!_propertySettingsRepository.TryGetContainer(pageDefinition.SettingsID, out container))
                    {
                        container = new PropertySettingsContainer(pageDefinition.SettingsID);
                    }
                }
                var settingsAttribute = (PropertySettingsAttribute)attribute;
                var wrapper           = container.GetSetting(settingsAttribute.SettingType);
                if (wrapper == null)
                {
                    wrapper = new PropertySettingsWrapper();
                    container.Settings.Add(settingsAttribute.SettingType.FullName, wrapper);
                }

                bool settingsAlreadyExists = true;
                if (wrapper.PropertySettings == null)
                {
                    wrapper.PropertySettings = (IPropertySettings)Activator.CreateInstance(settingsAttribute.SettingType);
                    settingsAlreadyExists    = false;
                }

                if (settingsAlreadyExists && !settingsAttribute.OverWriteExistingSettings)
                {
                    return;
                }

                if (settingsAttribute.UpdateSettings(wrapper.PropertySettings) || !settingsAlreadyExists)
                {
                    _propertySettingsRepository.Save(container);
                }
            }
        }
コード例 #5
0
        private PageTypePropertyUpdater CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakeUpdatePageDefinitionValuesMethod()
        {
            MockRepository          fakes = new MockRepository();
            PageTypePropertyUpdater pageTypePropertyUpdater = PageTypePropertyUpdaterFactory.PartialMock(fakes);

            pageTypePropertyUpdater.Stub(
                utility => utility.UpdatePageDefinitionValues(
                    Arg <PageDefinition> .Is.Anything, Arg <PageTypePropertyDefinition> .Is.Anything));
            pageTypePropertyUpdater.Replay();
            PageDefinitionFactory fakeFactory = fakes.Stub <PageDefinitionFactory>();

            fakeFactory.Stub(factory => factory.Save(Arg <PageDefinition> .Is.Anything));
            fakeFactory.Replay();
            pageTypePropertyUpdater.PageDefinitionFactory = fakeFactory;
            return(pageTypePropertyUpdater);
        }
コード例 #6
0
        private PageTypePropertyUpdater CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod()
        {
            MockRepository        fakes = new MockRepository();
            PageDefinitionFactory fakePageDefinitionFactory = fakes.Stub <PageDefinitionFactory>();

            fakePageDefinitionFactory.Stub(factory => factory.Save(Arg <PageDefinition> .Is.Anything));
            fakePageDefinitionFactory.Replay();
            PageTypePropertyUpdater partiallyMockedUtility = PageTypePropertyUpdaterFactory.PartialMock(fakes);

            partiallyMockedUtility.Stub(
                utility => utility.SetPageDefinitionType(
                    Arg <PageDefinition> .Is.Anything, Arg <PageTypePropertyDefinition> .Is.Anything));
            partiallyMockedUtility.PageDefinitionFactory = fakePageDefinitionFactory;
            partiallyMockedUtility.Replay();

            return(partiallyMockedUtility);
        }
コード例 #7
0
        public void GivenUpdatedPropertyDefinition_UpdatePageDefinition_CallsPageDefinitionFactorySave()
        {
            PageDefinition          pageDefinitionToUpdate = new PageDefinition();
            MockRepository          fakes = new MockRepository();
            PageTypePropertyUpdater pageTypePropertyUpdater = PageTypePropertyUpdaterFactory.PartialMock(fakes);

            pageTypePropertyUpdater.Stub(
                utility => utility.UpdatePageDefinitionValues(
                    Arg <PageDefinition> .Is.Anything, Arg <PageTypePropertyDefinition> .Is.Anything));
            PageDefinitionFactory fakeFactory = fakes.Stub <PageDefinitionFactory>();

            fakeFactory.Stub(factory => factory.Save(Arg <PageDefinition> .Is.Anything));
            fakeFactory.Replay();
            pageTypePropertyUpdater.PageDefinitionFactory = fakeFactory;
            pageTypePropertyUpdater.Stub(updater => updater.SerializeValues(pageDefinitionToUpdate)).Return(Guid.NewGuid().ToString()).Repeat.Once();
            pageTypePropertyUpdater.Stub(updater => updater.SerializeValues(pageDefinitionToUpdate)).Return(Guid.NewGuid().ToString());
            pageTypePropertyUpdater.Replay();
            PageTypePropertyDefinition propertyDefinition = CreatePageTypePropertyDefinition();

            pageTypePropertyUpdater.UpdatePageDefinition(pageDefinitionToUpdate, propertyDefinition);

            pageTypePropertyUpdater.PageDefinitionFactory.AssertWasCalled(factory => factory.Save(pageDefinitionToUpdate));
        }