Esempio n. 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());
        }