using Persistence.Repository; using Persistence.Database.Model; using Persistence.Database.Postgres; namespace Persistence.API; public class Startup { public IConfiguration Configuration { get; } public Startup(IConfiguration configuration) { Configuration = configuration; } public void ConfigureServices(IServiceCollection services) { // Add services to the container. services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle services.AddEndpointsApiExplorer(); services.AddSwagger(Configuration); services.AddInfrastructure(); services.AddPersistenceDbContext(Configuration); services.AddAuthorization(); services.AddJWTAuthentication(Configuration); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseSwagger(); app.UseSwaggerUI(); app.UseRouting(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } public static void BeforeRunHandler(IHost host) { using var scope = host.Services.CreateScope(); var provider = scope.ServiceProvider; var context = provider.GetRequiredService(); context.Database.EnsureCreatedAndMigrated(); } }