using Elastic.CommonSchema.Serilog; using FluentValidation; using PARR.API.Installers; using PARR.BLL; using PARR.DAL; using Serilog; using System.Reflection; var builder = WebApplication.CreateBuilder(args); builder.Host.UseSerilog((context, config) => { if (context.HostingEnvironment.IsProduction()) config.WriteTo.Console(new EcsTextFormatter()); else config.WriteTo.Console(); config.ReadFrom.Configuration(builder.Configuration); }); // Add services to the container. builder.Services.InstallDalServices(builder.Configuration); builder.Services.InstallBllServices(builder.Configuration); builder.Services.InstallApiServices(builder.Configuration); builder.Services.InstallSettings(builder.Configuration); builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies()); // Dal configuration builder.Configuration.AddDalConfigurations(builder.Services); builder.Services.AddDallSettings(builder.Configuration); builder.Services.AddHttpContextAccessor(); builder.Services.AddControllers(); builder.Services.AddValidatorsFromAssembly(Assembly.GetExecutingAssembly()); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.InstallSwaggerService(builder.Configuration); var app = builder.Build(); // Configure the HTTP request pipeline. app.InstallSwagger(); app.UseAuthorization(); app.MapControllers(); app.Run();