using Hellang.Middleware.ProblemDetails; using InnovEnergy.App.Backend.Database; using Microsoft.AspNetCore.HttpOverrides; using Microsoft.AspNetCore.Mvc; using Microsoft.OpenApi.Models; using InnovEnergy.Lib.Utils; namespace InnovEnergy.App.Backend; public static class Program { public static void Main(String[] args) { //Db.CreateFakeRelations(); Db.Init(); var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); builder.Services.AddProblemDetails(setup => { //This includes the stacktrace in Development Env setup.IncludeExceptionDetails = (_, _) => builder.Environment.IsDevelopment() || builder.Environment.IsStaging(); //This handles our Exceptions setup.Map(exception => new ProblemDetails { Detail = exception.Detail, Status = exception.Status, Type = exception.Type, Instance = exception.Instance }); }); builder.Services.AddSwaggerGen(c => { c.SwaggerDoc("v1", OpenApiInfo); c.UseAllOfToExtendReferenceSchemas(); c.SupportNonNullableReferenceTypes(); }); var app = builder.Build(); app.Use(async (context, next) => { context.Request.WriteLine(); await next(context); }); app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseCors(p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()) ; //app.UseHttpsRedirection(); app.MapControllers(); app.UseProblemDetails(); app.Run(); } private static OpenApiInfo OpenApiInfo { get; } = new OpenApiInfo { Title = "InnovEnergy Backend API", Version = "v1" }; } // var x = new CorsPolicy // { // Headers = { "*" }, // Origins = { "*" }, // Methods = { "*" } // };