using System.Reflection; using DtoAbstractLayer; using LibraryDTO; using Microsoft.OpenApi.Models; using MyLibraryManager; using OpenLibraryClient; using StubbedDTO; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddSingleton(); builder.Services.AddControllers(); var dtoManager = Environment.GetEnvironmentVariable("OPEN_LIBRARY"); var dbDataBase = Environment.GetEnvironmentVariable("MARIADB_DATABASE"); var dbUser = Environment.GetEnvironmentVariable("MARIADB_USER"); var dbPassword = Environment.GetEnvironmentVariable("MARIADB_PASSWORD"); var dbServer = Environment.GetEnvironmentVariable("MARIADB_SERVER"); var dbConnection = $"server={dbServer};port=3306;user={dbUser};password={dbPassword};database={dbDataBase}"; switch (dtoManager) { case "Stub": builder.Services.AddSingleton(); break; case "Api": builder.Services.AddSingleton(); break; case "ApiBdd": builder.Services.AddSingleton(); break; case "Bdd": builder.Services.AddSingleton(provider => new MyLibraryMgr(dbConnection)); break; default: builder.Services.AddSingleton(); break; } // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1"); }); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run();