public virtual void ConfigureDependencies(IDependencyManager dependencyManager)
        {
            dependencyManager.RegisterMinimalDependencies();

            dependencyManager.RegisterInstance(DefaultAppEnvironmentProvider.Current);
            dependencyManager.RegisterInstance(DefaultJsonContentFormatter.Current);
            dependencyManager.RegisterInstance(DefaultPathProvider.Current);

            dependencyManager.Register <ITimeZoneManager, DefaultTimeZoneManager>();
            dependencyManager.Register <IScopeStatusManager, DefaultScopeStatusManager>();
            dependencyManager.Register <IRequestInformationProvider, DefaultRequestInformationProvider>();
            dependencyManager.Register <ILogger, DefaultLogger>();
            dependencyManager.Register <IUserInformationProvider, DefaultUserInformationProvider>();
            dependencyManager.Register <ILogStore, ConsoleLogStore>();
            dependencyManager.Register <IDbConnectionProvider, DefaultSqlDbConnectionProvider>();

            dependencyManager.Register <IDateTimeProvider, DefaultDateTimeProvider>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.Register <IRandomStringProvider, DefaultRandomStringProvider>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.Register <ICertificateProvider, DefaultCertificateProvider>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.Register <IExceptionToHttpErrorMapper, DefaultExceptionToHttpErrorMapper>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.Register <ITestUserService, TestUserService>(lifeCycle: DependencyLifeCycle.SingleInstance);

            dependencyManager.RegisterAppEvents <RazorViewEngineConfiguration>();
            dependencyManager.RegisterAppEvents <InitialTestDataConfiguration>();

            dependencyManager.RegisterOwinMiddleware <OwinCompressionMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <StaticFilesMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <AutofacDependencyInjectionMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <OwinExceptionHandlerMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <LogRequestInformationMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <SignInPageMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <ReadAuthTokenFromCookieMiddlewareConfiguration>();
            if (_args?.UseSso == true)
            {
                dependencyManager.RegisterOwinMiddleware <SingleSignOnMiddlewareConfiguration>();
            }
            else
            {
                dependencyManager.RegisterOwinMiddleware <EmbeddedOAuthMiddlewareConfiguration>();
            }
            dependencyManager.RegisterOwinMiddleware <LogUserInformationMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <MetadataMiddlewareConfiguration>();

            dependencyManager.RegisterDefaultWebApiConfiguration(typeof(FoundationEdmModelProvider).GetTypeInfo().Assembly, typeof(TestEdmModelProvider).GetTypeInfo().Assembly);

            dependencyManager.RegisterUsing <IOwinMiddlewareConfiguration>(() =>
            {
                return(dependencyManager.CreateChildDependencyResolver(childDependencyManager =>
                {
                    childDependencyManager.RegisterGlobalWebApiActionFiltersUsing(httpConfiguration =>
                    {
                        httpConfiguration.Filters.Add(new AuthorizeAttribute());
                    });

                    childDependencyManager.RegisterWebApiMiddlewareUsingDefaultConfiguration("WebApi");
                }).Resolve <IOwinMiddlewareConfiguration>("WebApi"));
            }, lifeCycle: DependencyLifeCycle.SingleInstance, overwriteExciting: false);

            dependencyManager.RegisterUsing <IOwinMiddlewareConfiguration>(() =>
            {
                return(dependencyManager.CreateChildDependencyResolver(childDependencyManager =>
                {
                    childDependencyManager.RegisterGlobalWebApiActionFiltersUsing(httpConfiguration =>
                    {
                        httpConfiguration.Filters.Add(new DefaultODataAuthorizeAttribute());
                    });

                    childDependencyManager.RegisterWebApiODataMiddlewareUsingDefaultConfiguration("WebApiOData");
                    childDependencyManager.RegisterEdmModelProvider <FoundationEdmModelProvider>();
                    childDependencyManager.RegisterEdmModelProvider <TestEdmModelProvider>();
                }).Resolve <IOwinMiddlewareConfiguration>("WebApiOData"));
            }, lifeCycle: DependencyLifeCycle.SingleInstance, overwriteExciting: false);

            dependencyManager.RegisterSignalRConfiguration <SignalRAuthorizeConfiguration>();
            dependencyManager.RegisterSignalRMiddlewareUsingDefaultConfiguration(typeof(MessagesHub).GetTypeInfo().Assembly);

            dependencyManager.RegisterBackgroundJobWorkerUsingDefaultConfiguration <JobSchedulerInMemoryBackendConfiguration>();

            dependencyManager.Register <IAppMetadataProvider, DefaultAppMetadataProvider>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.RegisterMetadata(typeof(FoundationEdmModelProvider).GetTypeInfo().Assembly, typeof(TestEdmModelProvider).GetTypeInfo().Assembly);

            dependencyManager.RegisterGeneric(typeof(IRepository <>).GetTypeInfo(), typeof(TestEfRepository <>).GetTypeInfo(), DependencyLifeCycle.InstancePerLifetimeScope);

            dependencyManager.RegisterGeneric(typeof(IEntityWithDefaultGuidKeyRepository <>).GetTypeInfo(), typeof(TestEfEntityWithDefaultGuidKeyRepository <>).GetTypeInfo(), DependencyLifeCycle.InstancePerLifetimeScope);

            if (Settings.Default.UseInMemoryProviderByDefault)
            {
                dependencyManager.RegisterEfCoreDbContext <TestDbContext, InMemoryDbContextObjectsProvider>();
            }
            else
            {
                dependencyManager.RegisterEfCoreDbContext <TestDbContext, SqlDbContextObjectsProvider>();
            }

            dependencyManager.RegisterDtoModelMapper();

            dependencyManager.RegisterDtoModelMapperConfiguration <TestDtoModelMapperConfiguration>();

            if (_args?.AdditionalDependencies != null)
            {
                _args?.AdditionalDependencies(dependencyManager);
            }

            dependencyManager.RegisterOwinMiddleware <RedirectToSsoIfNotLoggedInMiddlewareConfiguration>();

            dependencyManager.RegisterDefaultPageMiddlewareUsingDefaultConfiguration();
        }
Exemplo n.º 2
0
        public virtual void ConfigureDependencies(IDependencyManager dependencyManager)
        {
            AssemblyContainer.Current.Init();

            dependencyManager.RegisterMinimalDependencies();

            dependencyManager.RegisterDefaultLogger(typeof(ConsoleLogStore).GetTypeInfo(), typeof(DebugLogStore).GetTypeInfo());

            dependencyManager.Register <IDbConnectionProvider, DefaultDbConnectionProvider <SqlConnection> >();

            dependencyManager.RegisterAppEvents <RazorViewEngineConfiguration>();
            dependencyManager.RegisterAppEvents <InitialTestDataConfiguration>();

            dependencyManager.RegisterDefaultOwinApp();

            dependencyManager.RegisterOwinMiddleware <StaticFilesMiddlewareConfiguration>();
            dependencyManager.RegisterMinimalOwinMiddlewares();
            dependencyManager.RegisterSingleSignOnClient();

            dependencyManager.RegisterMetadata();

            dependencyManager.RegisterDefaultWebApiAndODataConfiguration();

            dependencyManager.RegisterWebApiMiddleware(webApiDependencyManager =>
            {
                webApiDependencyManager.RegisterGlobalWebApiActionFiltersUsing(httpConfiguration =>
                {
                    httpConfiguration.Filters.Add(new AuthorizeAttribute());
                });

                webApiDependencyManager.RegisterWebApiMiddlewareUsingDefaultConfiguration();
            });

            dependencyManager.RegisterODataMiddleware(odataDependencyManager =>
            {
                odataDependencyManager.RegisterGlobalWebApiActionFiltersUsing(httpConfiguration =>
                {
                    httpConfiguration.Filters.Add(new DefaultODataAuthorizeAttribute());
                });

                odataDependencyManager.RegisterEdmModelProvider <BitEdmModelProvider>();
                odataDependencyManager.RegisterEdmModelProvider <TestEdmModelProvider>();

                odataDependencyManager.RegisterWebApiODataMiddlewareUsingDefaultConfiguration();
            });

            dependencyManager.RegisterSignalRConfiguration <SignalRAuthorizeConfiguration>();
            dependencyManager.RegisterSignalRMiddlewareUsingDefaultConfiguration();

            dependencyManager.RegisterHangfireBackgroundJobWorkerUsingDefaultConfiguration <JobSchedulerInMemoryBackendConfiguration>();

            dependencyManager.RegisterGeneric(typeof(IRepository <>).GetTypeInfo(), typeof(TestEfRepository <>).GetTypeInfo(), DependencyLifeCycle.InstancePerLifetimeScope);

            if (Settings.Default.UseInMemoryProviderByDefault)
            {
                dependencyManager.RegisterEfCoreDbContext <TestDbContext, InMemoryDbContextObjectsProvider>();
            }
            else
            {
                dependencyManager.RegisterEfCoreDbContext <TestDbContext, SqlDbContextObjectsProvider>();
            }

            dependencyManager.RegisterDtoModelMapper();

            dependencyManager.RegisterDtoModelMapperConfiguration <DefaultDtoModelMapperConfiguration>();
            dependencyManager.RegisterDtoModelMapperConfiguration <TestDtoModelMapperConfiguration>();

            dependencyManager.RegisterSingleSignOnServer <TestUserService, TestClientProvider>();

            if (_args?.AdditionalDependencies != null)
            {
                _args?.AdditionalDependencies(dependencyManager);
            }


            dependencyManager.RegisterSecureDefaultPageMiddlewareUsingDefaultConfiguration();
        }
        public virtual void ConfigureDependencies(IDependencyManager dependencyManager)
        {
            dependencyManager.RegisterMinimalDependencies();

            dependencyManager.RegisterInstance(DefaultAppEnvironmentProvider.Current);
            dependencyManager.RegisterInstance(DefaultJsonContentFormatter.Current);
            dependencyManager.RegisterInstance(DefaultPathProvider.Current);

            dependencyManager.Register <ITimeZoneManager, DefaultTimeZoneManager>();
            dependencyManager.Register <IScopeStatusManager, DefaultScopeStatusManager>();
            dependencyManager.Register <IRequestInformationProvider, DefaultRequestInformationProvider>();
            dependencyManager.Register <ILogger, DefaultLogger>();
            dependencyManager.Register <IUserInformationProvider, DefaultUserInformationProvider>();
            dependencyManager.Register <ILogStore, ConsoleLogStore>();

            dependencyManager.Register <IDateTimeProvider, DefaultDateTimeProvider>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.Register <IRandomStringProvider, DefaultRandomStringProvider>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.Register <ICertificateProvider, DefaultCertificateProvider>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.Register <IExceptionToHttpErrorMapper, DefaultExceptionToHttpErrorMapper>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.Register <ITestUserService, TestUserService>(lifeCycle: DependencyLifeCycle.SingleInstance);

            dependencyManager.RegisterAspNetCoreMiddleware <AspNetCoreExceptionHandlerMiddlewareConfiguration>(); //@Important
            dependencyManager.RegisterAspNetCoreMiddleware <TestWebApiCoreMvcMiddlewareConfiguration>();          //@Important

            dependencyManager.RegisterOwinMiddleware <StaticFilesMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <ExtendAspNetCoreAutofacLifetimeToOwinMiddlewareConfiguration>(); //@Important
            dependencyManager.RegisterOwinMiddleware <LogRequestInformationMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <SignInPageMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <ReadAuthTokenFromCookieMiddlewareConfiguration>();
            if (_args.UseSso)
            {
                dependencyManager.RegisterOwinMiddleware <SingleSignOnMiddlewareConfiguration>();
            }
            else
            {
                dependencyManager.RegisterOwinMiddleware <EmbeddedOAuthMiddlewareConfiguration>();
            }
            dependencyManager.RegisterOwinMiddleware <LogUserInformationMiddlewareConfiguration>();
            dependencyManager.RegisterOwinMiddleware <MetadataMiddlewareConfiguration>();

            dependencyManager.RegisterDefaultWebApiConfiguration(typeof(FoundationEdmModelProvider).GetTypeInfo().Assembly, typeof(FoundationAspNetCoreTestEdmModelProvider).GetTypeInfo().Assembly);

            dependencyManager.RegisterGlobalWebApiActionFiltersUsing(httpConfiguration =>
            {
                httpConfiguration.Filters.Add(new DefaultODataAuthorizeAttribute());
            });

            dependencyManager.RegisterUsing(() =>
            {
                return(dependencyManager.CreateChildDependencyResolver(childDependencyManager =>
                {
                    childDependencyManager.RegisterWebApiODataMiddlewareUsingDefaultConfiguration("WebApiOData");
                    childDependencyManager.RegisterEdmModelProvider <FoundationEdmModelProvider>();
                }).Resolve <IOwinMiddlewareConfiguration>("WebApiOData"));
            }, lifeCycle: DependencyLifeCycle.SingleInstance, overwriteExciting: false);

            dependencyManager.RegisterSignalRConfiguration <SignalRAuthorizeConfiguration>();
            dependencyManager.RegisterSignalRMiddlewareUsingDefaultConfiguration(typeof(MessagesHub).GetTypeInfo().Assembly);

            dependencyManager.RegisterBackgroundJobWorkerUsingDefaultConfiguration <JobSchedulerInMemoryBackendConfiguration>();

            dependencyManager.Register <IAppMetadataProvider, DefaultAppMetadataProvider>(lifeCycle: DependencyLifeCycle.SingleInstance);
            dependencyManager.RegisterMetadata(typeof(FoundationEdmModelProvider).GetTypeInfo().Assembly, typeof(FoundationAspNetCoreTestEdmModelProvider).GetTypeInfo().Assembly);

            if (_args?.AdditionalDependencies != null)
            {
                _args?.AdditionalDependencies(dependencyManager);
            }
        }