/// <summary> /// Default imlementation of <see cref="IContentTypeModelFilter"/>. this implementation remove all the pageTypedefinitions.types from a list of types /// </summary> public IList<Type> Filter(IList<Type> types) { var definitions = new PageTypeDefinitionLocator(new AppDomainAssemblyLocator()).GetPageTypeDefinitions(); foreach (Type t in definitions.Select(d => d.Type)) { types.Remove(t); } return types; }
public void Initialize(InitializationEngine context) { var assemblyLocator = new AppDomainAssemblyLocator(); var pageTypeLocator = new PageTypeLocator(new PageTypeFactory()); var pageTypeDefinitionLocator = new PageTypeDefinitionLocator( assemblyLocator); var pageTypeUpdater = new PageTypeUpdater( pageTypeDefinitionLocator, new PageTypeFactory(), new PageTypeValueExtractor(), pageTypeLocator); var globalPropertySettingsLocator = new GlobalPropertySettingsLocator(assemblyLocator); var propertySettingsRepository = new PropertySettingsRepository(); var pageTypePropertyUpdater = new PageTypePropertyUpdater( new PageDefinitionFactory(), new PageDefinitionTypeFactory(), new TabFactory(), propertySettingsRepository, globalPropertySettingsLocator); var tabDefinitionUpdater = new TabDefinitionUpdater(new TabFactory()); var tabLocator = new TabLocator(assemblyLocator); PageTypeSynchronizer synchronizer = new PageTypeSynchronizer( pageTypeDefinitionLocator, Configuration, pageTypePropertyUpdater, new PageTypeDefinitionValidator(new PageDefinitionTypeMapper(new PageDefinitionTypeFactory())), PageTypeResolver.Instance, pageTypeLocator, pageTypeUpdater, tabDefinitionUpdater, tabLocator, new GlobalPropertySettingsSynchronizer(propertySettingsRepository, globalPropertySettingsLocator)); synchronizer.SynchronizePageTypes(); DataFactory.Instance.LoadedPage += DataFactory_LoadedPage; DataFactory.Instance.LoadedChildren += DataFactory_LoadedChildren; DataFactory.Instance.LoadedDefaultPageData += DataFactory_LoadedPage; }