using Services.Common; var builder = WebApplication.CreateBuilder(args); builder.AddServiceDefaults(); builder.Services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => builder .AllowAnyMethod() .AllowAnyHeader() .SetIsOriginAllowed((host) => true) .AllowCredentials()); }); builder.Services.AddSignalR(builder.Configuration); builder.Services.AddSingleton, OrderStatusChangedToAwaitingValidationIntegrationEventHandler>(); builder.Services.AddSingleton, OrderStatusChangedToCancelledIntegrationEventHandler>(); builder.Services.AddSingleton, OrderStatusChangedToPaidIntegrationEventHandler>(); builder.Services.AddSingleton, OrderStatusChangedToShippedIntegrationEventHandler>(); builder.Services.AddSingleton, OrderStatusChangedToStockConfirmedIntegrationEventHandler>(); builder.Services.AddSingleton, OrderStatusChangedToSubmittedIntegrationEventHandler>(); var app = builder.Build(); if (!await app.CheckHealthAsync()) { return; } app.UseServiceDefaults(); app.UseCors("CorsPolicy"); app.UseAuthentication(); app.UseAuthorization(); app.MapHub("/hub/notificationhub"); var eventBus = app.Services.GetRequiredService(); eventBus.Subscribe(); eventBus.Subscribe(); eventBus.Subscribe(); eventBus.Subscribe(); eventBus.Subscribe(); eventBus.Subscribe(); await app.RunAsync();