/// <summary>
        /// 添加Rye框架对数据库访问层的支持
        /// </summary>
        /// <param name="services"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        public static IServiceCollection AddDataAccessModule(this IServiceCollection services, Action <DbConnectionMapOptions> action = null)
        {
            var module = new DataAccessModule(action);

            services.AddModule <DataAccessModule>(module);
            return(services);
        }
Пример #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy("AllowAll",
                                  builder =>
                {
                    builder
                    .AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials();
                });
            });

            services.AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddJsonOptions(
                options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
                );

            services.AddHttpContextAccessor();
            services.AddScoped <ICurrentUserProvider, CurrentUser>();
            services.AddScoped <IChessGame, ChessGame>();
            services.AddFirebaseAuthentication(Configuration.GetValue <string>("Firebase:ProjectId"));
            BuisinessLogicModule.ConfigureServices(services, Configuration);
            DataAccessModule.ConfigureServices(services, Configuration);
            CommonModule.ConfigureServices(services, Configuration);
        }
Пример #3
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            NinjectModule dataAccessModule    = new DataAccessModule();
            NinjectModule businessLogicModule = new BusinessLogicModule();
            IKernel       kernel = new StandardKernel(dataAccessModule, businessLogicModule);

            DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
        }
Пример #4
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            //if (env.IsDevelopment())
            //{
            app.UseDeveloperExceptionPage();
            //}

            BusinessLogicModule.ConfigureMiddleware(app);
            CommonModule.ConfigureMiddleware(app);
            CoreModule.ConfigureMiddleware(app);
            DataAccessModule.ConfigureMiddleware(app);

            // if (env.IsDevelopment())
            //  {
            app.UseCors("AllowAll");
            // }

            app.UseAuthentication();

            app.UseMvc();
            if (Configuration.GetValue <bool>("UseLocalSignalR"))
            {
                app.UseSignalR(options =>
                {
                    options.MapHub <WorkspaceHub>("/workspaceHub");
                    options.MapHub <ChatHub>("/chatHub");
                    options.MapHub <NavigationHub>("/navigationHub");
                });
            }
            else
            {
                app.UseAzureSignalR(options =>
                {
                    options.MapHub <WorkspaceHub>("/workspaceHub");
                    options.MapHub <ChatHub>("/chatHub");
                    options.MapHub <NavigationHub>("/navigationHub");
                });
            }
        }
Пример #5
0
        private static void DIConfiguration(IAppBuilder app)
        {
            var mvcContainer = new Container();
            var apiContainer = new Container();

            mvcContainer.Options.DefaultScopedLifestyle = new WebRequestLifestyle();
            apiContainer.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

            DataAccessModule.Load(mvcContainer);
            DataAccessModule.Load(apiContainer);

            ApplicationModule.Load(mvcContainer);
            ApplicationModule.Load(apiContainer);

            mvcContainer.RegisterMvcControllers(Assembly.GetExecutingAssembly());
            apiContainer.RegisterWebApiControllers(GlobalConfiguration.Configuration);

            mvcContainer.Verify();
            apiContainer.Verify();

            DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(mvcContainer));
            GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(apiContainer);
        }