using MyWarehouse.Infrastructure; using MyWarehouse.WebApi.Logging; using System.Reflection; using MyWarehouse.Application.Products; namespace MyWarehouse.WebApi; [ExcludeFromCodeCoverage] public static class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); builder.Host .UseNServiceBus(_ => { var endpointConfiguration = new EndpointConfiguration("WarehouseDemo"); var transport = endpointConfiguration.UseTransport<LearningTransport>(); endpointConfiguration.UsePersistence<LearningPersistence>(); var routing = transport.Routing(); routing.RouteToEndpoint( assembly: typeof(FlashSaleCommand).Assembly, destination: "Demo"); return endpointConfiguration; }) .AddMySerilogLogging() // Notice: Logging overrides. .ConfigureAppConfiguration((context, config) => { // ConfigureWebHostDefaults only adds secrets if environment is Develop. // This ensures they're always added, for local testing of Production setting. config.AddUserSecrets(Assembly.GetEntryAssembly(), optional: true); // Notice: Infrastructure hook. config.AddMyInfrastructureConfiguration(context); }); var startup = new Startup(builder.Configuration, builder.Environment); startup.ConfigureServices(builder.Services); var app = builder.Build(); startup.Configure(app); app.Run(); } }