diff --git a/src/Server/Extensions/ApplicationBuilderExtensions.cs b/src/Server/Extensions/ApplicationBuilderExtensions.cs index e380325c9..bffee45ce 100644 --- a/src/Server/Extensions/ApplicationBuilderExtensions.cs +++ b/src/Server/Extensions/ApplicationBuilderExtensions.cs @@ -1,5 +1,5 @@ using System.Globalization; -using System.Linq; +using System. Linq; using BlazorHero.CleanArchitecture.Application.Interfaces.Services; using BlazorHero.CleanArchitecture.Server.Hubs; using BlazorHero.CleanArchitecture.Server.Middlewares; @@ -12,6 +12,10 @@ using BlazorHero.CleanArchitecture.Shared.Constants.Application; using BlazorHero.CleanArchitecture.Application.Configurations; using Microsoft.Extensions.Configuration; +using BlazorHero.CleanArchitecture.Infrastructure.Contexts; +using Microsoft.EntityFrameworkCore; +using System; +using Microsoft.Extensions.Logging; namespace BlazorHero.CleanArchitecture.Server.Extensions { @@ -82,8 +86,26 @@ internal static IApplicationBuilder Initialize(this IApplicationBuilder app, Mic { using var serviceScope = app.ApplicationServices.CreateScope(); - var initializers = serviceScope.ServiceProvider.GetServices(); + var services = serviceScope.ServiceProvider; + + try + { + var context = services.GetRequiredService(); + if (context.Database.IsSqlServer()) + { + context.Database.Migrate(); + } + } + catch (Exception ex) + { + var logger = serviceScope.ServiceProvider.GetRequiredService>(); + + logger.LogError(ex, "An error occurred while migrating or seeding the database."); + + throw; + } + var initializers = serviceScope.ServiceProvider.GetServices(); foreach (var initializer in initializers) { initializer.Initialize(); diff --git a/src/Server/Program.cs b/src/Server/Program.cs index f769bae87..e8718c29a 100644 --- a/src/Server/Program.cs +++ b/src/Server/Program.cs @@ -1,54 +1,14 @@ -using System; -using System.Threading.Tasks; -using BlazorHero.CleanArchitecture.Infrastructure.Contexts; -using BlazorHero.CleanArchitecture.Server.Extensions; -using Microsoft.AspNetCore.Hosting; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; +using BlazorHero.CleanArchitecture.Server; +using Microsoft.AspNetCore.Builder; -namespace BlazorHero.CleanArchitecture.Server -{ - public class Program - { - public async static Task Main(string[] args) - { - var host = CreateHostBuilder(args).Build(); +var builder = WebApplication.CreateBuilder(args); - using (var scope = host.Services.CreateScope()) - { - var services = scope.ServiceProvider; +var startup = new Startup(builder.Configuration); - try - { - var context = services.GetRequiredService(); +startup.ConfigureServices(builder.Services); - if (context.Database.IsSqlServer()) - { - context.Database.Migrate(); - } - } - catch (Exception ex) - { - var logger = scope.ServiceProvider.GetRequiredService>(); +var app = builder.Build(); - logger.LogError(ex, "An error occurred while migrating or seeding the database."); +startup.Configure(app, app.Environment); - throw; - } - } - - await host.RunAsync(); - } - - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .UseSerilog() - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStaticWebAssets(); - webBuilder.UseStartup(); - }); - } -} \ No newline at end of file +app.Run(); \ No newline at end of file diff --git a/src/Server/Startup.cs b/src/Server/Startup.cs index 7e6f14c75..420c104cb 100644 --- a/src/Server/Startup.cs +++ b/src/Server/Startup.cs @@ -67,7 +67,7 @@ public void ConfigureServices(IServiceCollection services) services.AddLazyCache(); } - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IStringLocalizer localizer) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseForwarding(_configuration); app.UseExceptionHandling(env); @@ -86,7 +86,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IStringL app.UseAuthorization(); app.UseHangfireDashboard("/jobs", new DashboardOptions { - DashboardTitle = localizer["BlazorHero Jobs"], + DashboardTitle = "BlazorHero Jobs", Authorization = new[] { new HangfireAuthorizationFilter() } }); app.UseEndpoints();