示例#1
0
 // This method gets called by the runtime. Use this method to add services to the container.
 public IServiceProvider ConfigureServices(IServiceCollection services)
 {
     services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
     //注册实体映射
     ColumnMapper.SetMapper();
     return(AutofacRegister.RegisterAutofac(services));
 }
示例#2
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();
            config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling      = Newtonsoft.Json.ReferenceLoopHandling.Serialize;
            config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None;

            config.Formatters.XmlFormatter.UseXmlSerializer = false;

            var builder = AutofacRegister.Setup();

            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);


            config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);
            config.MapODataServiceRoute("odata", "odata", GetEdmModel());

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );
        }
示例#3
0
        protected void Application_Start()
        {
            _logHelper = LogHelperFactory.GetLogHelper <MvcApplication>();

            if (AppContext.EFProfilerEnable)
            {
                //MiniProfilerEF6初始化,必须放在第一行
                //因为要监控ef,所以要在ef初始化之前
                MiniProfilerEF6.Initialize();
            }
            //ASP.NET 路由操作处理所有请求(甚至包括与现有文件匹配的请求)
            RouteTable.Routes.RouteExistingFiles = true;
            //注册视图引擎
            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new RazorViewEngine());
            ViewEngines.Engines.Add(new WebFormViewEngine());
            //注册所有区域
            AreaRegistration.RegisterAllAreas();

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            //ioc配置
            AutofacRegister.RegisterAutofac();

            EFWormUp();
        }
示例#4
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);



            AutofacRegister.RegisterAutoFac("WEBMVC", null);
        }
示例#5
0
        public static void Config(HttpConfiguration config, Assembly webapiAssembly, IEnumerable <Assembly> assemblies)
        {
            var builder = new ContainerBuilder();

            builder.RegisterApiControllers(webapiAssembly);
            builder.RegisterAssemblyTypes(webapiAssembly).AsImplementedInterfaces();
            builder.RegisterAssemblyTypes(assemblies.ToArray()).AsImplementedInterfaces();
            AutofacRegister.Register(builder);
            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            ObjectContainers.Current  = container;
        }
示例#6
0
        private static void SetAutofacContainer()
        {
            var builder = new ContainerBuilder();

            //builder.RegisterControllers(Assembly.GetExecutingAssembly());
            builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired();
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired();


            AutofacRegister.AutofacRegisterTypes(builder);

            builder.RegisterFilterProvider();
            IContainer container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            GlobalConfiguration.Configuration.UseAutofacActivator(container);
        }
示例#7
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <DefaultContext>(options =>
                                                   options.UseSqlServer(Configuration.GetConnectionString("Default"),
                                                                        b => b.MigrationsAssembly("ApplicationCore"))
                                                   );

            services.AddIdentity <User, IdentityRole>(options =>
            {
                options.User.RequireUniqueEmail = true;
            })
            .AddEntityFrameworkStores <DefaultContext>()
            .AddDefaultTokenProviders();

            services.Configure <AppSettings>(Configuration.GetSection("AppSettings"));
            services.Configure <MongoDBSettings>(Configuration.GetSection("MongoDBSettings"));
            services.Configure <RootSubjectSettings>(Configuration.GetSection("RootSubjectSettings"));
            services.Configure <AuthSettings>(Configuration.GetSection("AuthSettings"));
            services.Configure <SubscribesSettings>(Configuration.GetSection("SubscribesSettings"));
            services.Configure <EcPaySettings>(Configuration.GetSection("EcPaySettings"));
            services.Configure <CloudStorageSettings>(Configuration.GetSection("CloudStorageSettings"));
            services.Configure <AdminSettings>(Configuration.GetSection("AdminSettings"));


            services.AddHangfire(x => x.UseSqlServerStorage(Configuration.GetConnectionString("Default")));
            services.AddHangfireServer();


            var signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Configuration["AuthSettings:SecurityKey"]));

            string issuer          = Configuration["AppSettings:Name"];
            string audience        = ClientUrl;
            string securityKey     = Configuration["AuthSettings:SecurityKey"];
            int    tokenValidHours = Convert.ToInt32(Configuration["AuthSettings:TokenValidHours"]);

            services.AddJwtBearer(tokenValidHours, issuer, audience, securityKey);

            services.AddSwagger("PosterExamStarter", "v1");

            services.AddDtoMapper();

            services.AddAuthorization(options =>
            {
                options.AddPolicy("Subscriber", policy =>
                                  policy.Requirements.Add(new HasPermissionRequirement(Permissions.Subscriber)));

                options.AddPolicy("Admin", policy =>
                                  policy.Requirements.Add(new HasPermissionRequirement(Permissions.Admin)));
            });


            services.AddCors(options =>
            {
                options.AddPolicy("Api",
                                  builder =>
                {
                    builder.WithOrigins(ClientUrl)
                    .AllowAnyHeader()
                    .AllowAnyMethod().AllowCredentials();
                });

                options.AddPolicy("Admin",
                                  builder =>
                {
                    builder.WithOrigins(AdminUrl)
                    .AllowAnyHeader()
                    .AllowAnyMethod();
                });

                options.AddPolicy("Global",
                                  builder =>
                {
                    builder.WithOrigins(ClientUrl, AdminUrl)
                    .AllowAnyHeader()
                    .AllowAnyMethod();
                });

                options.AddPolicy("EcPay",
                                  builder =>
                {
                    builder.WithOrigins(Configuration["EcPaySettings:Url"])
                    .AllowAnyHeader()
                    .AllowAnyMethod();
                });
            });

            services.AddControllers();

            services.AddSignalR();


            services.AddHttpClient(Consts.Google, c =>
            {
                c.BaseAddress = new Uri("https://www.google.com");
            });

            services.AddSingleton <IHubConnectionManager, HubConnectionManager>();
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.AddScoped <Web.Services.IThirdPartyPayService, Web.Services.EcPayService>();
            services.AddScoped <Web.Services.ISubscribesService, Web.Services.SubscribesService>();

            return(AutofacRegister.Register(services));
        }
示例#8
0
 public UnitTestAutofac()
 {
     AutofacRegister.RegisterAutoFac();
 }