public void RegisterLegacyTypesToNewDefaultServiceLocator()
        {
            var legacyServiceTypes = LegacyServiceConfigurationService.GetConfiguration();

            var locator = DefaultServiceLocator.Create();

            foreach (var serviceConfigurationEntry in legacyServiceTypes)
            {
                locator.Register(serviceConfigurationEntry);
            }

            foreach (var legacyServiceType in legacyServiceTypes)
            {
                Assert.That(
                    locator.GetInstance(legacyServiceType.ServiceType),
                    Is.TypeOf(GetSingleServiceImplementationInfo(legacyServiceType).ImplementationType));
            }
        }
        public void GetConfiguration()
        {
            var nonLegacyServices = new[]
            {
                typeof(IWebTabRenderer),
                typeof(IScriptUtility),
                typeof(IMenuTabRenderer),
                typeof(ResourceTheme),
                typeof(IControlBuilderCodeProcessor),
                typeof(IHotkeyFormatter),
                typeof(IResourcePathBuilder),
                typeof(IHttpContextProvider),
                typeof(IInternalControlMemberCaller),
                typeof(IBuildManager),
                typeof(IRenderingFeatures),
                typeof(IWebSecurityAdapter),
                typeof(IWxeSecurityAdapter),
            };

            var discoverySerivce = DefaultServiceConfigurationDiscoveryService.Create();
            var allServiceTypes  = discoverySerivce.GetDefaultConfiguration(new[] { typeof(IResourceUrl).Assembly })
                                   .Select(e => e.ServiceType);
            var expectedLegacyServiceTypes = allServiceTypes.Except(nonLegacyServices);

            Assert.That(
                LegacyServiceConfigurationService.GetConfiguration().Select(e => e.ServiceType),
                Is.EquivalentTo(expectedLegacyServiceTypes),
                "New service was added in Remotion.Web. Either the Service must also be added to Remotion.Web.Legacy or added to the exclude list in 'nonLegacyServices'.");

            Assert.That(
                LegacyServiceConfigurationService.GetConfiguration()
                .Where(e => !nonLegacyServices.Contains(e.ServiceType))
                .Select(e => GetSingleServiceImplementationInfo(e).ImplementationType.Assembly)
                .ToArray(),
                Is.All.EqualTo(typeof(LegacyServiceConfigurationService).Assembly));
        }
Beispiel #3
0
        protected void Application_Start(Object sender, EventArgs e)
        {
            LogManager.Initialize();
            PreferQuirksModeRendering = false;
            bool useClassicBlueTheme = false;

            if (useClassicBlueTheme)
            {
                DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.Create();
                defaultServiceLocator.Register(typeof(ResourceTheme), typeof(ResourceTheme.ClassicBlue), LifetimeKind.Singleton);
                ServiceLocator.SetLocatorProvider(() => defaultServiceLocator);
            }

            string objectPath = Server.MapPath("~/objects");

            if (!Directory.Exists(objectPath))
            {
                Directory.CreateDirectory(objectPath);
            }

            XmlReflectionBusinessObjectStorageProvider provider = new XmlReflectionBusinessObjectStorageProvider(objectPath);

            XmlReflectionBusinessObjectStorageProvider.SetCurrent(provider);
            BusinessObjectProvider.GetProvider <BindableObjectWithIdentityProviderAttribute>().AddService(typeof(IGetObjectService), provider);
            BusinessObjectProvider.GetProvider <BindableObjectWithIdentityProviderAttribute>()
            .AddService(typeof(ISearchAvailableObjectsService), new BindableXmlObjectSearchService());
            BusinessObjectProvider.GetProvider <BindableObjectWithIdentityProviderAttribute>()
            .AddService(typeof(IBusinessObjectWebUIService), new ReflectionBusinessObjectWebUIService());

            BusinessObjectProvider.GetProvider <BindableObjectProviderAttribute>().AddService(new ReferenceDataSourceTestDefaultValueService());
            BusinessObjectProvider.GetProvider <BindableObjectProviderAttribute>().AddService(new ReferenceDataSourceTestDeleteObjectService());

            if (PreferQuirksModeRendering)
            {
                DefaultServiceLocator defaultServiceLocator = DefaultServiceLocator.Create();
                foreach (var entry in LegacyServiceConfigurationService.GetConfiguration())
                {
                    defaultServiceLocator.Register(entry);
                }
                foreach (var entry in BocLegacyServiceConfigurationService.GetConfiguration())
                {
                    defaultServiceLocator.Register(entry);
                }

                ServiceLocator.SetLocatorProvider(() => defaultServiceLocator);

                Assertion.IsTrue(SafeServiceLocator.Current.GetInstance <IBocListRenderer>() is BocListQuirksModeRenderer);
                Assertion.IsTrue(SafeServiceLocator.Current.GetInstance <IBocTextValueRenderer>() is BocTextValueQuirksModeRenderer);
            }

            _resourceVirtualPathProvider = new ResourceVirtualPathProvider(
                new[]
            {
                new ResourcePathMapping("Remotion.Web", @"..\..\Web\Core\res"),
                new ResourcePathMapping("Remotion.ObjectBinding.Web", @"..\..\ObjectBinding\Web\res"),
                new ResourcePathMapping("Remotion.Web.Legacy", @"..\..\Web\Legacy\res"),
                new ResourcePathMapping("Remotion.ObjectBinding.Web.Legacy", @"..\..\ObjectBinding\Web.Legacy\res")
            },
                FileExtensionHandlerMapping.Default);
            _resourceVirtualPathProvider.Register();

            //var bundle = new Bundle ("~/bundles/css");
            //foreach (var resourcePathMapping in _resourceVirtualPathProvider.Mappings)
            //  BundleCssFilesRecursively ((ResourceVirtualDirectory) _resourceVirtualPathProvider.GetDirectory(resourcePathMapping.VirtualPath), bundle);

            //BundleTable.Bundles.Add (bundle);
        }