using FictionArchive.Service.Shared.Extensions; using FictionArchive.Service.Shared.Services.EventBus.Implementations; using FictionArchive.Service.UserService.GraphQL; using FictionArchive.Service.UserService.Models.IntegrationEvents; using FictionArchive.Service.UserService.Services; using FictionArchive.Service.UserService.Services.EventHandlers; namespace FictionArchive.Service.UserService; public class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); #region Event Bus builder.Services.AddRabbitMQ(opt => { builder.Configuration.GetSection("RabbitMQ").Bind(opt); }) .Subscribe(); #endregion #region GraphQL builder.Services.AddDefaultGraphQl(); #endregion builder.Services.RegisterDbContext(builder.Configuration.GetConnectionString("DefaultConnection")); builder.Services.AddTransient(); builder.Services.AddHealthChecks(); var app = builder.Build(); // Update database using (var scope = app.Services.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService(); dbContext.UpdateDatabase(); } app.MapGraphQL(); app.MapHealthChecks("/healthz"); app.Run(); } }