using SystemX.Core.Services; using WebApi.Project.ProxyKMS.Models; using WebApi.Project.ProxyKMS.Services; string configDir = @"../../Config"; string configFileName = "WebApi.Project.ProxyKMSApi.Config.json"; //raed log4net configs if (LogXnet.ReadConfig(@$"{configDir}/LogXnetConfig.json") == true) { LogXnet.WriteLine("LogXnet Init Success"); } else { Console.WriteLine("LogXnet Init Failed"); return; } var builder = WebApplication.CreateBuilder(args); // Add services to the container. //singleton builder.Services.AddSingleton>(); //scoped builder.Services.AddSingleton(); builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddHttpContextAccessor(); //config preload, auth set ConfigService preloadConfig = new ConfigService(); if (preloadConfig.OpenConfig($@"{configDir}/{configFileName}") == true) { var config = preloadConfig.GetConfig(); } else { LogXnet.WriteLine("Config Preload Load Error.", LogXLabel.Error); return; } var app = builder.Build(); //read api config and set string serverUrl = string.Empty; var configService = app.Services.GetService>(); bool isIIS = false; int socketPort = 0; if (configService?.OpenConfig($@"{configDir}/{configFileName}") == true) { LogXnet.WriteLine("WebApi Config Success."); var apiConfig = ConfigService.Config; if (apiConfig != null) { serverUrl = $"{apiConfig?.Server?.Address}:{apiConfig?.Server?.Port}"; isIIS = apiConfig!.Server.IIS; } } else { LogXnet.WriteLine("WebApi Config Error."); return; } // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { LogXnet.WriteLine($"IsDevelopment:{app.Environment.IsDevelopment()}"); LogXnet.WriteLine($"Swagger Url: {serverUrl}/swagger"); app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); if (isIIS == true) { app.Run(); } else { LogXnet.WriteLine($"Operation Url: {serverUrl}"); app.Run($"{serverUrl}"); }