public void ConfigureServices(IServiceCollection services)
{
//Add PostgreSQL support
services.AddEntityFrameworkNpgsql()
.AddDbContext<DockerCommandsDbContext>(options =>
options.UseNpgsql(Configuration["Data:DbContext:DockerCommandsConnectionString"]))
.AddDbContext<CustomersDbContext>(options =>
options.UseNpgsql(Configuration["Data:DbContext:CustomersConnectionString"]));
services.AddMvc();
// Add our PostgreSQL Repositories (scoped to each request)
services.AddScoped<IDockerCommandsRepository, DockerCommandsRepository>();
services.AddScoped<ICustomersRepository, CustomersRepository>();
//Transient: Created each time they're needed
services.AddTransient<DockerCommandsDbSeeder>();
services.AddTransient<CustomersDbSeeder>();
//Nice article by Shayne Boyer here on Swagger:
//https://docs.asp.net/en/latest/tutorials/web-api-help-pages-using-swagger.html
services.AddSwaggerGen();
services.ConfigureSwaggerGen(options =>
{
options.SingleApiVersion(new Info
{
Version = "v1",
Title = "ASP.NET Core Customers API",
Description = "ASP.NET Core Customers Web API documentation",
TermsOfService = "None",
Contact = new Contact { Name = "Dan Wahlin", Url = "http://twitter.com/danwahlin"},
License = new License { Name = "MIT", Url = "https://en.wikipedia.org/wiki/MIT_License" }
});
//Enable following for XML comment support and add "xmlDoc": true to buildOptions in project.json
//Base app path
//var basePath = PlatformServices.Default.Application.ApplicationBasePath;
//Set the comments path for the swagger json and ui.
//options.IncludeXmlComments(basePath + "\\yourAPI.xml");
});
}