using Elecciones.Database; using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); // --- 1. Configuración de Servicios --- // Añade la cadena de conexión y el DbContext para Entity Framework Core. var connectionString = builder.Configuration.GetConnectionString("DefaultConnection"); builder.Services.AddDbContext(options => options.UseSqlServer(connectionString)); // Añade los servicios para los controladores de la API. builder.Services.AddControllers(); // Configura CORS para permitir que tu frontend (y www.eldia.com) consuman la API. // builder.Services.AddCors(options => // { // options.AddDefaultPolicy(policy => // { // policy.WithOrigins("http://localhost:5173", "http://localhost:8600", "http://www.eldia.com", "http://elecciones2025.eldia.com") // .AllowAnyHeader() // .AllowAnyMethod(); // }); // }); var allowedOrigins = builder.Configuration["AllowedOrigins"]?.Split(',') ?? []; builder.Services.AddCors(options => { options.AddDefaultPolicy(policy => { if (allowedOrigins.Any()) { policy.WithOrigins(allowedOrigins) .AllowAnyHeader() .AllowAnyMethod(); } }); }); // Añade la configuración de Swagger/OpenAPI para la documentación de la API. builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); // --- 2. Configuración del Pipeline de Peticiones HTTP --- // Habilita la UI de Swagger en el entorno de desarrollo. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } // Redirige las peticiones HTTP a HTTPS. app.UseHttpsRedirection(); // Usa la política de CORS que definimos arriba. app.UseCors(); // Habilita la autorización (lo configuraremos si es necesario más adelante). app.UseAuthorization(); // Mapea las rutas a los controladores de la API. app.MapControllers(); // Inicia la aplicación. app.Run();