using Microsoft.EntityFrameworkCore; using Microsoft.OpenApi.Models; using Moonlight.ApiServer.Configuration; using Moonlight.ApiServer.Database; using Moonlight.ApiServer.Interfaces.Startup; using Moonlight.ApiServer.Services; namespace Moonlight.ApiServer.Implementations.Startup; public class CoreStartup : IPluginStartup { private readonly AppConfiguration Configuration; public CoreStartup(AppConfiguration configuration) { Configuration = configuration; } public Task BuildApplication(IHostApplicationBuilder builder) { #region Api Docs if (Configuration.Development.EnableApiDocs) { builder.Services.AddEndpointsApiExplorer(); // Configure swagger api specification generator and set the document title for the api docs to use builder.Services.AddSwaggerGen(options => options.SwaggerDoc("main", new OpenApiInfo() { Title = "Moonlight API" })); } #endregion #region Database builder.Services.AddDbContext(); #endregion return Task.CompletedTask; } public Task ConfigureApplication(IApplicationBuilder app) { return Task.CompletedTask; } public Task ConfigureEndpoints(IEndpointRouteBuilder routeBuilder) { if(Configuration.Development.EnableApiDocs) routeBuilder.MapSwagger("/api/swagger/{documentName}"); return Task.CompletedTask; } }