using System; using System.IO; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Cors.Infrastructure; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Oqtane.Extensions; using Oqtane.Infrastructure; using Oqtane.Shared; namespace Oqtane.Server { public class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); AppDomain.CurrentDomain.SetData(Constants.DataDirectory, Path.Combine(builder.Environment.ContentRootPath, "Data")); var configurationBuilder = new ConfigurationBuilder() .SetBasePath(builder.Environment.ContentRootPath) .AddJsonFile("appsettings.json", false, true) .AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", true, true) .AddEnvironmentVariables(); var configuration = configurationBuilder.Build(); builder.Services.AddOqtane(configuration, builder.Environment); var app = builder.Build(); var corsService = app.Services.GetRequiredService(); var corsPolicyProvider = app.Services.GetRequiredService(); var syncManager = app.Services.GetRequiredService(); app.UseOqtane(configuration, builder.Environment, corsService, corsPolicyProvider, syncManager); var databaseManager = app.Services.GetService(); var install = databaseManager.Install(); if (!string.IsNullOrEmpty(install.Message)) { var filelogger = app.Services.GetRequiredService>(); if (filelogger != null) { filelogger.LogError($"[Oqtane.Server.Program.Main] {install.Message}"); } } else { app.Run(); } } } }