using DbFirst.Application; using DbFirst.Application.Catalogs; using DbFirst.Domain.Repositories; using DbFirst.Infrastructure; using DbFirst.Infrastructure.Repositories; using MediatR; using DbFirst.API.Middleware; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); // TODO: allow listed origins configured in appsettings.json builder.Services.AddCors(options => { var origins = builder.Configuration.GetSection("Cors:AllowedOrigins").Get() ?? Array.Empty(); options.AddDefaultPolicy(policy => { if (origins.Length > 0) { policy.WithOrigins(origins) .AllowAnyHeader() .AllowAnyMethod(); } else { policy.AllowAnyOrigin() .AllowAnyHeader() .AllowAnyMethod(); } }); }); builder.Services.AddInfrastructure(builder.Configuration); builder.Services.AddApplication(); builder.Services.AddScoped(); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseMiddleware(); app.UseHttpsRedirection(); app.UseCors(); app.UseAuthorization(); app.MapControllers(); app.Run();