2019-09-24 16:58:38 +00:00
|
|
|
using Microsoft.AspNetCore.Builder;
|
|
|
|
using Microsoft.AspNetCore.Hosting;
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
2019-09-24 18:28:42 +00:00
|
|
|
using InstructorsListApp.Models;
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
2019-09-24 16:58:38 +00:00
|
|
|
|
2019-09-24 18:28:42 +00:00
|
|
|
namespace InstructorsListApp
|
2019-09-24 16:58:38 +00:00
|
|
|
{
|
|
|
|
public class Startup
|
|
|
|
{
|
|
|
|
public Startup(IConfiguration configuration)
|
|
|
|
{
|
|
|
|
Configuration = configuration;
|
|
|
|
}
|
|
|
|
|
|
|
|
public IConfiguration Configuration { get; }
|
|
|
|
|
|
|
|
// This method gets called by the runtime. Use this method to add services to the container.
|
|
|
|
public void ConfigureServices(IServiceCollection services)
|
|
|
|
{
|
|
|
|
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
|
2019-09-24 18:28:42 +00:00
|
|
|
string conString = Microsoft
|
|
|
|
.Extensions
|
|
|
|
.Configuration
|
|
|
|
.ConfigurationExtensions
|
|
|
|
.GetConnectionString(this.Configuration, "DefaultDatabase");
|
|
|
|
services.AddDbContext<DatabaseContext>(options => options.UseSqlServer(conString));
|
2019-09-24 16:58:38 +00:00
|
|
|
// In production, the Angular files will be served from this directory
|
|
|
|
services.AddSpaStaticFiles(configuration =>
|
|
|
|
{
|
|
|
|
configuration.RootPath = "ClientApp/dist";
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
|
|
|
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
|
|
|
|
{
|
|
|
|
if (env.IsDevelopment())
|
|
|
|
{
|
|
|
|
app.UseDeveloperExceptionPage();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
app.UseExceptionHandler("/Error");
|
|
|
|
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
|
|
|
app.UseHsts();
|
|
|
|
}
|
|
|
|
|
2019-09-24 20:23:47 +00:00
|
|
|
app.UseMvc(routes =>
|
|
|
|
{
|
|
|
|
routes.MapRoute(
|
|
|
|
name: "default",
|
|
|
|
template: "{controller=Home}/{action=Index}/{id?}");
|
|
|
|
});
|
|
|
|
|
|
|
|
//app.UseHttpsRedirection();
|
2019-09-24 16:58:38 +00:00
|
|
|
app.UseStaticFiles();
|
|
|
|
app.UseSpaStaticFiles();
|
|
|
|
|
|
|
|
app.UseSpa(spa =>
|
|
|
|
{
|
|
|
|
// To learn more about options for serving an Angular SPA from ASP.NET Core,
|
|
|
|
// see https://go.microsoft.com/fwlink/?linkid=864501
|
|
|
|
|
|
|
|
spa.Options.SourcePath = "ClientApp";
|
|
|
|
|
|
|
|
if (env.IsDevelopment())
|
|
|
|
{
|
2019-09-24 17:05:43 +00:00
|
|
|
spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");
|
2019-09-24 16:58:38 +00:00
|
|
|
}
|
|
|
|
});
|
2019-09-25 21:50:17 +00:00
|
|
|
|
|
|
|
// initialize database
|
|
|
|
var serviceScopeFactory = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>();
|
|
|
|
using (var serviceScope = serviceScopeFactory.CreateScope())
|
|
|
|
{
|
|
|
|
var dbContext = serviceScope.ServiceProvider.GetService<DatabaseContext>();
|
|
|
|
dbContext.Database.EnsureCreated();
|
|
|
|
}
|
2019-09-24 16:58:38 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|