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