aboutsummaryrefslogtreecommitdiff
path: root/ExamTemplate/Web/Startup.cs
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2021-05-15 22:20:53 +0300
committerSyndamia <kamen.d.mladenov@protonmail.com>2021-05-15 22:20:53 +0300
commitf35a7aecd313547a6f6478a056fb2d5593f1c07b (patch)
tree4473c30a5b51591d79f627b7518f8c9e15787cbf /ExamTemplate/Web/Startup.cs
parent2ac139d0854c0f6d1b4cebc1487dd41128f00c60 (diff)
downloadit-kariera-exam-template-f35a7aecd313547a6f6478a056fb2d5593f1c07b.tar
it-kariera-exam-template-f35a7aecd313547a6f6478a056fb2d5593f1c07b.tar.gz
it-kariera-exam-template-f35a7aecd313547a6f6478a056fb2d5593f1c07b.zip
Big daddy refactor
Diffstat (limited to 'ExamTemplate/Web/Startup.cs')
-rw-r--r--ExamTemplate/Web/Startup.cs134
1 files changed, 0 insertions, 134 deletions
diff --git a/ExamTemplate/Web/Startup.cs b/ExamTemplate/Web/Startup.cs
deleted file mode 100644
index c18bca6..0000000
--- a/ExamTemplate/Web/Startup.cs
+++ /dev/null
@@ -1,134 +0,0 @@
-using System;
-using System.Linq;
-using ExamTemplate.Common;
-using ExamTemplate.Data;
-using ExamTemplate.Data.Models;
-using ExamTemplate.Services.Services;
-using ExamTemplate.Services.Interfaces;
-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;
-
-namespace ExamTemplate.Web
-{
- 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.AddControllersWithViews();
- services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
-
- /*
- * Dependency Injection configuration
- */
-
- services.AddTransient<ICloudinaryService, CloudinaryService>(options =>
- new CloudinaryService(
- cloudName: this.Configuration.GetSection("Cloud").GetSection("cloudName").Value,
- apiKey: this.Configuration.GetSection("Cloud").GetSection("apiKey").Value,
- apiSecret: this.Configuration.GetSection("Cloud").GetSection("apiSecret").Value));
- services.AddTransient<IUserService, UserService>();
-
- /*
- * Database configuration
- */
-
- services.AddDbContext<TemplateContext>(options =>
- options.UseNpgsql(this.Configuration.GetConnectionString("LocalDBConnection")));
-
- // Needed for SignInManager and UserManager
- services.AddIdentity<User, IdentityRole<Guid>>(options =>
- {
- options.SignIn.RequireConfirmedAccount = false;
-
- // Password settings
- options.Password.RequireDigit = false;
- options.Password.RequireLowercase = false;
- options.Password.RequireNonAlphanumeric = false;
- options.Password.RequireUppercase = false;
- options.Password.RequiredLength = 3;
- options.Password.RequiredUniqueChars = 0;
- }).AddRoles<IdentityRole<Guid>>()
- .AddEntityFrameworkStores<TemplateContext>();
- }
-
- // 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.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- }
- else
- {
- app.UseExceptionHandler("/Home/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();
- }
-
- app.UseStaticFiles();
-
- app.UseRouting();
-
- app.UseAuthentication();
- app.UseAuthorization();
-
- app.UseEndpoints(endpoints =>
- {
- endpoints.MapControllerRoute(
- name: "default",
- pattern: "{controller=Home}/{action=Index}/{id?}");
- endpoints.MapFallbackToController("ErrorNotFound", "Home");
- });
-
- /*
- * Make sure that the database is migrated
- * and that the User and Admin role exist in database
- */
-
- using var serviceScope = app.ApplicationServices.CreateScope();
- using var dbContext = serviceScope.ServiceProvider.GetRequiredService<TemplateContext>();
-
- dbContext.Database.Migrate();
-
- var roleManager = (RoleManager<IdentityRole<Guid>>)serviceScope.ServiceProvider.GetService(typeof(RoleManager<IdentityRole<Guid>>));
- foreach (string name in RoleConst.GetAllNames())
- {
- if (!dbContext.Roles.Any(x => x.Name == name))
- {
- IdentityRole<Guid> role = new IdentityRole<Guid>() { Name = name };
- roleManager.CreateAsync(role).Wait();
- }
- }
-
- /* If you want to create some custom database values at startup
- * uncomment the following code
- * and replace OBJCONST_ with your static class with constants (e.g. RoleConst)
- * replace OBJS_ with the name of the DbSet of your database model (e.g. Roles)
- * replace OBJ_ with the name of your database model (e.g. Role)
-
- foreach (string name in OBJCONST_.GetAllNames())
- {
- if (!dbContext.OBJS_.Any(x => x.Name == name))
- {
- var entity = new OBJ_() { Id = Guid.NewGuid(), Name = name };
- dbContext.OBJS_.Add(entity);
- dbContext.SaveChanges();
- }
- }
- */
- }
- }
-}