using Elastic.CommonSchema.Serilog; using FluentValidation; using Microsoft.AspNetCore.Server.HttpSys; using PARR.API.Authentication; using PARR.API.Installers; using PARR.API.RoleProvider; 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); // Auth builder.Services.AddAuthentication(ParrAuthenticationOptions.DefaultScheme) .AddScheme(ParrAuthenticationOptions.DefaultScheme, opt => { }); // не используем, так как проверка ролей остается прежней, а роли подставляем в ParrAuthenticationHandler //builder.Services.AddSimpleRoleAuthorization(); 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.UseAuthentication(); app.UseAuthorization(); app.MapControllers(); app.Run();