| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- using DutchTreat.Data;
- using DutchTreat.Data.Entities;
- using DutchTreat.Services;
- using Microsoft.AspNetCore.Builder;
- using Microsoft.AspNetCore.Hosting;
- using Microsoft.AspNetCore.Identity;
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Hosting;
- using Microsoft.IdentityModel.Tokens;
- using Newtonsoft.Json;
- using System.Reflection;
- using System.Text;
- namespace DutchTreat
- {
- public class Startup
- {
- private readonly IConfiguration _config;
- public Startup(IConfiguration config)
- {
- _config = config;
- }
- // This method gets called by the runtime. Use this method to add services to the container.
- // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddIdentity<StoreUser, IdentityRole>(cfg =>
- {
- cfg.User.RequireUniqueEmail = true;
- }).AddEntityFrameworkStores<DutchContext>();
- services.AddAuthentication()
- .AddCookie()
- .AddJwtBearer(cfg =>
- {
- cfg.TokenValidationParameters = new TokenValidationParameters()
- {
- ValidIssuer = _config["Token:Issuer"],
- ValidAudience = _config["Token:Audience"],
- IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Token:Key"]))
- };
- });
- services.AddDbContext<DutchContext>(cfg =>
- {
- cfg.UseSqlServer(_config.GetConnectionString("DutchConnectionString"));
- });
- services.AddAutoMapper(Assembly.GetExecutingAssembly());
- services.AddTransient<IMailService, NullMailService>();
- services.AddTransient<DutchSeeder>();
- services.AddScoped<IDutchRepository, DutchRepository>();
- services.AddMvc()
- .AddRazorRuntimeCompilation()
- .AddNewtonsoftJson(cfg => cfg.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore);
- }
- // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
- {
- if (env.IsEnvironment("Development"))
- {
- app.UseDeveloperExceptionPage(); // --> For debug
- }
- else
- {
- app.UseExceptionHandler("/error");
- }
- app.UseStaticFiles();
- //app.UseDefaultFiles();
- //Routing MVC
- app.UseRouting();
- app.UseAuthentication();
- app.UseAuthorization();
- app.UseEndpoints(cfg => {
- cfg.MapRazorPages();
- cfg.MapControllerRoute("Default",
- "/{controller}/{action}/{id?}",
- new { controller = "App", action = "Index" });
- });
- }
- }
- }
|