using Microsoft.Extensions.Caching.Memory; using ProofOfConcept.Services; var builder = WebApplication.CreateSlimBuilder(args); // builder.Services.ConfigureHttpJsonOptions(options => { options.SerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonSerializerContext.Default); }); builder.Services.AddOpenApi(); builder.Services.AddMediator(); builder.Services.AddMemoryCache(); builder.Services.AddHybridCache(); builder.Services.AddSingleton(); builder.Services.AddHostedService(); builder.Services.AddHostedService(); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.MapOpenApi(); } //Map tesla required public key file app.MapGet("/.well-known/appspecific/com.tesla.3p.public-key.pem", (IMemoryCache memoryCache) => memoryCache.GetOrCreateAsync("publicKeyCert", async (_) => await File.ReadAllTextAsync("Resources/Signature/public-key.pem"))); //Map an under constrcution page... app.Map("/", ()=> "Under construction..."); app.Run();