UTB.Eshop_2021/UTB.Eshop.Web/Program.cs

55 lines
2.0 KiB
C#

using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using UTB.Eshop.Web.Models.Database;
using UTB.Eshop.Web.Models.Identity;
namespace UTB.Eshop.Web
{
public class Program
{
public static async Task Main(string[] args)
{
IHost host = CreateHostBuilder(args).Build();
using (var scope = host.Services.CreateScope())
{
if (scope.ServiceProvider.GetRequiredService<IWebHostEnvironment>().IsDevelopment())
{
var dbContext = scope.ServiceProvider.GetRequiredService<EshopDbContext>();
DatabaseInit dbInit = new DatabaseInit();
dbInit.Initialization(dbContext);
var roleManager = scope.ServiceProvider.GetRequiredService<RoleManager<Role>>();
var userManager = scope.ServiceProvider.GetRequiredService<UserManager<User>>();
await dbInit.EnsureRoleCreated(roleManager);
await dbInit.EnsureAdminCreated(userManager);
await dbInit.EnsureManagerCreated(userManager);
}
}
host.Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureLogging((loggingBuilder) =>
{
loggingBuilder.ClearProviders();
loggingBuilder.AddConsole();
loggingBuilder.AddDebug();
loggingBuilder.AddFile("Logs/eshop-log-{Date}.txt");
});
}
}