Beispiel #1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddHealthChecks();
            services.AddSwaggerGen(c =>
            {
                var xmlPath = Path.Combine(AppContext.BaseDirectory, $"{Assembly.GetExecutingAssembly().GetName().Name}.xml");
                c.IncludeXmlComments(xmlPath);
            });
            services.AddAuthZeroConfig(Configuration);
            services.AddCors(CorsConfig.GetPolicy());

            services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
            services.AddTransient <IApiKey, GoogleLocationApiKey>();
            services.AddHttpClient <GeocodingService>()
            .AddPolicyHandler(PollyConfig.GetRetryPolicy())
            .AddPolicyHandler(PollyConfig.GetCircuitBreakerPolicy());

            services.AddDbContext <WorkerDbContext>(options =>
                                                    options.UseSqlite(Configuration.GetConnectionString("WorkerDatabase")));
            services.AddScoped <IWorkerRepository, WorkerRepository>();
            services.AddTransient <IAddressToCoordinatesTranslator, AddressToCoordinatesTranslator>();
            services.AddTransient <DistanceCalculator>();
            services.AddTransient <WorkerProfileFinder>();

            services.AddSpaStaticFiles(SpaConfig.GetOptions());
        }
Beispiel #2
0
        /// <summary>
        /// 配置SPA service
        /// </summary>
        /// <param name="services"></param>
        /// <param name="config"></param>
        public static void AddSpaService(this IServiceCollection services, SpaConfig config)
        {
            if (!config.Enable)
            {
                return;
            }

            services.AddSpaStaticFiles(options =>
            {
                options.RootPath = config.RootPath;
            });
        }
Beispiel #3
0
        /// <summary>
        /// 使用SPA中间件
        /// </summary>
        /// <param name="app"></param>
        /// <param name="env"></param>
        /// <param name="config"></param>
        public static void UseSpaMiddleware(this IApplicationBuilder app, IWebHostEnvironment env, SpaConfig config)
        {
            if (!config.Enable)
            {
                return;
            }

            app.UseSpaStaticFiles();
            app.UseSpa(builder =>
            {
                //生产模式代理到build后的文件目录
                builder.Options.SourcePath = config.SourcePath;
                if (env.IsDevelopment())
                {
                    //开发模式下代理到本地启动的Vue服务
                    builder.UseProxyToSpaDevelopmentServer("http://localhost:3000");
                }
            });
        }