Beispiel #1
0
        private IServiceProvider CreateWindsorServiceProviderInMultipleBatches()
        {
            var windsorContainer = new WindsorContainer();
            // batch 1
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <TestClassWithSingleDependency>();
            serviceCollection.AddSingleton <TestClassWithCollectionDependency>();
            serviceCollection.AddSingleton <ITestInterface, TestClass1>();
            serviceCollection.AddSingleton <ITestInterface, TestClass2>();
            var serviceProvider = WindsorRegistrationHelper.CreateServiceProvider(windsorContainer, serviceCollection);
            // batch 2
            var serviceCollection2 = new ServiceCollection();

            serviceCollection2.AddSingleton <ITestInterface, TestClass3>();
            serviceCollection2.AddSingleton <ITestInterface, TestClass4>();
            windsorContainer.AddServices(serviceCollection2);
            // batch 3
            var serviceCollection3 = new ServiceCollection();

            serviceCollection3.AddSingleton <ITestInterface, TestClass5>();
            serviceCollection3.AddSingleton <ITestInterface, TestClass6>();
            windsorContainer.AddServices(serviceCollection3);

            return(serviceProvider);
        }
Beispiel #2
0
        public override void Configure(IFunctionsHostBuilder builder)
        {
            var container = new WindsorContainer();

            container.Register(Component.For <IScoped1>().ImplementedBy <Scoped1>().LifestyleScoped());


            // register function classes in container
            var functions = Assembly.GetExecutingAssembly().GetTypes().Where(t =>
                                                                             t.GetMethods().Any(m => m.GetCustomAttributes(typeof(FunctionNameAttribute), false).Any()));

            foreach (var function in functions)
            {
                container.Register(Component.For(function).LifestyleScoped());
            }

            builder.Services.AddScoped <CastleWindsorJobActivator.ScopeDisposable>()
            .AddSingleton <IJobActivator>(new CastleWindsorJobActivator(container));

            container.AddServices(builder.Services);
        }
Beispiel #3
0
        private static void RegisterLtiComponents(WindsorContainer container, NameValueCollection appSettings)
        {
            IServiceCollection serviceCollection = new ServiceCollection();

            serviceCollection = RegisterHttpClients(serviceCollection, appSettings);
            container.AddServices(serviceCollection);

            //moodle
            container.Register(Component.For <IMoodleApi>().ImplementedBy <MoodleApi>().LifeStyle.Transient);
            container.Register(Component.For <IEGCEnabledMoodleApi>().ImplementedBy <EGCEnabledMoodleApi>().LifeStyle.Transient);
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <MoodleLmsUserService>().Named(LmsProviderEnum.Moodle.ToString()).LifeStyle.Transient);

            //brightspace
            container.Register(Component.For <IDesire2LearnApiService>().ImplementedBy <Desire2LearnApiService>().LifeStyle.Transient);
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <Desire2LearnLmsUserService>().Named(LmsProviderEnum.Brightspace.ToString()).LifeStyle.Transient);
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <Desire2LearnLmsUserServiceSync>().Named(LmsProviderEnum.Brightspace.ToString() + "_Sync").LifeStyle.Transient);

            //canvas
            container.Register(Component.For <ICanvasAPI>().ImplementedBy <CanvasAPI>().LifeStyle.Transient);
            container.Register(Component.For <IEGCEnabledCanvasAPI>().ImplementedBy <EGCEnabledCanvasAPI>().LifeStyle.Transient);
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <CanvasLmsUserService>().Named(LmsProviderEnum.Canvas.ToString()).LifeStyle.Transient);
            container.Register(Component.For <LmsCourseSectionsServiceBase>().ImplementedBy <CanvasLmsCourseSectionsService>().Named(LmsProviderEnum.Canvas.ToString() + "SectionsService").LifeStyle.Transient);

            //agilixbuzz
            container.Register(Component.For <IAgilixBuzzApi>().ImplementedBy <DlapAPI>().Named("IAgilixBuzzApi").LifeStyle.Transient);
            //container.Register(Component.For<IAgilixBuzzScheduling>().ImplementedBy<ShedulingHelper>().LifeStyle.Singleton);
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <AgilixBuzzLmsUserService>().Named(LmsProviderEnum.AgilixBuzz.ToString()).LifeStyle.Transient);
            //container.Register(Component.For<DlapAPI>().ImplementedBy<DlapAPI>().LifeStyle.Transient);

            //blackboard
            container.Register(Component.For <IBlackBoardApi>().ImplementedBy <SoapBlackBoardApi>().LifeStyle.Singleton);
            container.Register(Component.For <IEGCEnabledBlackBoardApi>().ImplementedBy <EGCEnabledBlackboardApi>().LifeStyle.Singleton);
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <BlackboardLmsUserService>().Named(LmsProviderEnum.Blackboard.ToString()).LifeStyle.Transient);

            //sakai
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <SakaiLmsUserService>().Named(LmsProviderEnum.Sakai.ToString()).LifeStyle.Transient);
            container.Register(Component.For <ICalendarExportService>().ImplementedBy <SakaiCalendarExportService>().Named(LmsProviderEnum.Sakai.ToString() + "CalendarExportService").LifeStyle.Transient);
            container.Register(Component.For <LmsCourseSectionsServiceBase>().ImplementedBy <SakaiLmsCourseSectionsService>().LifeStyle.Transient);

            //bridge
            container.Register(Component.For <IBridgeApi>().ImplementedBy <BridgeApi>().LifeStyle.Transient);
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <BridgeLmsUserService>().Named(LmsProviderEnum.Bridge.ToString()).LifeStyle.Transient);
            container.Register(Component.For <ICalendarExportService>().ImplementedBy <BridgeCalendarExportService>().Named(LmsProviderEnum.Bridge.ToString() + "CalendarExportService").LifeStyle.Transient);
            container.Register(Component.For <IMeetingSessionService>().ImplementedBy <BridgeMeetingSessionService>().Named(LmsProviderEnum.Bridge.ToString() + "SessionsService").LifeStyle.Transient);

            //schoology
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <SchoologyLmsUserService>().Named(LmsProviderEnum.Schoology.ToString()).LifeStyle.Transient);

            //haiku
            container.Register(Component.For <HaikuOAuthBaseClient>().LifeStyle.Transient);
            container.Register(Component.For <IHaikuRestApiClient>().ImplementedBy <HaikuRestApiClient>().LifeStyle.Transient);
            container.Register(Component.For <LmsUserServiceBase>().ImplementedBy <HaikuLmsUserService>().Named(LmsProviderEnum.Haiku.ToString()).LifeStyle.Transient);
            container.Register(Component.For <LmsCourseSectionsServiceBase>().ImplementedBy <HaikuLmsCourseSectionsService>().Named(LmsProviderEnum.Haiku.ToString() + "SectionsService").LifeStyle.Transient);

            //            container.Install(
            //                Castle.Windsor.Installer.Configuration.FromXml(new AssemblyResource("assembly://EdugameCloud.Lti.Moodle/EdugameCloud.Lti.Moodle.Windsor.xml")),
            //                Castle.Windsor.Installer.Configuration.FromXml(new AssemblyResource("assembly://EdugameCloud.Lti.Desire2Learn/EdugameCloud.Lti.Desire2Learn.Windsor.xml")),
            //                Castle.Windsor.Installer.Configuration.FromXml(new AssemblyResource("assembly://EdugameCloud.Lti.Canvas/EdugameCloud.Lti.Canvas.Windsor.xml")),
            //                Castle.Windsor.Installer.Configuration.FromXml(new AssemblyResource("assembly://EdugameCloud.Lti.AgilixBuzz/EdugameCloud.Lti.AgilixBuzz.Windsor.xml")),
            //                Castle.Windsor.Installer.Configuration.FromXml(new AssemblyResource("assembly://EdugameCloud.Lti.Blackboard/EdugameCloud.Lti.BlackBoard.Windsor.xml")),
            //                Castle.Windsor.Installer.Configuration.FromXml(new AssemblyResource("assembly://EdugameCloud.Lti.Sakai/EdugameCloud.Lti.Sakai.Windsor.xml")),
            //                Castle.Windsor.Installer.Configuration.FromXml(new AssemblyResource("assembly://EdugameCloud.Lti.Schoology/EdugameCloud.Lti.Schoology.Windsor.xml")),
            //                Castle.Windsor.Installer.Configuration.FromXml(new AssemblyResource("assembly://EdugameCloud.Lti.Haiku/EdugameCloud.Lti.Haiku.Windsor.xml")),
            //                Castle.Windsor.Installer.Configuration.FromXml(new AssemblyResource("assembly://EdugameCloud.Lti.Bridge/EdugameCloud.Lti.Bridge.Windsor.xml"))
            //            );

            container.Install(new LtiWindsorInstaller());
        }