using FluentValidation; using IdentityShroud.Api; using IdentityShroud.Api.Mappers; using IdentityShroud.Api.Validation; using IdentityShroud.Core; using IdentityShroud.Core.Contracts; using IdentityShroud.Core.Security; using IdentityShroud.Core.Services; using Serilog; using Serilog.Formatting.Json; // Initial logging until we can set it up from Configuration Log.Logger = new LoggerConfiguration() .Enrich.FromLogContext() .WriteTo.Console(new JsonFormatter()) .CreateLogger(); var applicationBuilder = WebApplication.CreateSlimBuilder(args); ConfigureBuilder(applicationBuilder); var application = applicationBuilder.Build(); ConfigureApplication(application); application.Run(); void ConfigureBuilder(WebApplicationBuilder builder) { var services = builder.Services; var configuration = builder.Configuration; //services.AddControllers(); services.ConfigureHttpJsonOptions(options => { options.SerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonSerializerContext.Default); }); // Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi services.AddOpenApi(); services.AddScoped(); services.AddScoped(); services.AddOptions().Bind(configuration.GetSection("db")); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddValidatorsFromAssemblyContaining(); builder.Host.UseSerilog((context, services, configuration) => configuration .Enrich.FromLogContext() //.Enrich.With() .ReadFrom.Configuration(context.Configuration)); } void ConfigureApplication(WebApplication app) { if (app.Environment.IsDevelopment()) { app.MapOpenApi(); } app.UseSerilogRequestLogging(); app.MapRealmEndpoints(); // app.UseRouting(); // app.MapControllers(); } public partial class Program { }