2017-03-02 21:04:03 -08:00
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
2016-10-14 00:06:35 -07:00
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Threading.Tasks ;
using Microsoft.AspNetCore.Builder ;
using Microsoft.AspNetCore.Hosting ;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore ;
using Microsoft.EntityFrameworkCore ;
using Microsoft.Extensions.Configuration ;
using Microsoft.Extensions.DependencyInjection ;
using Microsoft.Extensions.Logging ;
using WebApplication.Data ;
using WebApplication.Models ;
using WebApplication.Services ;
namespace WebApplication
{
public class Startup
{
public Startup ( IHostingEnvironment env )
{
var builder = new ConfigurationBuilder ( )
. SetBasePath ( env . ContentRootPath )
. AddJsonFile ( "appsettings.json" , optional : true , reloadOnChange : true )
. AddJsonFile ( $"appsettings.{env.EnvironmentName}.json" , optional : true ) ;
if ( env . IsDevelopment ( ) )
{
// For more details on using the user secret store see https://go.microsoft.com/fwlink/?LinkID=532709
builder . AddUserSecrets ( ) ;
}
builder . AddEnvironmentVariables ( ) ;
Configuration = builder . Build ( ) ;
}
public IConfigurationRoot Configuration { get ; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices ( IServiceCollection services )
{
// Add framework services.
services . AddDbContext < ApplicationDbContext > ( options = >
options . UseSqlite ( Configuration . GetConnectionString ( "DefaultConnection" ) ) ) ;
services . AddIdentity < ApplicationUser , IdentityRole > ( )
. AddEntityFrameworkStores < ApplicationDbContext > ( )
. AddDefaultTokenProviders ( ) ;
services . AddMvc ( ) ;
// Add application services.
services . AddTransient < IEmailSender , AuthMessageSender > ( ) ;
services . AddTransient < ISmsSender , AuthMessageSender > ( ) ;
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure ( IApplicationBuilder app , IHostingEnvironment env , ILoggerFactory loggerFactory )
{
loggerFactory . AddConsole ( Configuration . GetSection ( "Logging" ) ) ;
loggerFactory . AddDebug ( ) ;
if ( env . IsDevelopment ( ) )
{
app . UseDeveloperExceptionPage ( ) ;
app . UseDatabaseErrorPage ( ) ;
app . UseBrowserLink ( ) ;
}
else
{
app . UseExceptionHandler ( "/Home/Error" ) ;
}
app . UseStaticFiles ( ) ;
app . UseIdentity ( ) ;
// Add external authentication middleware below. To configure them please see https://go.microsoft.com/fwlink/?LinkID=532715
app . UseMvc ( routes = >
{
routes . MapRoute (
name : "default" ,
template : "{controller=Home}/{action=Index}/{id?}" ) ;
} ) ;
}
}
}