using System; using System.Collections.Generic; using System.Net; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using WebDesktopBackend.Entitys.Permissions; namespace WebDesktopBackend { public class Program { public static PermissionGroup[] Groups; public static void Main(string[] args) { var configuration = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: false) .Build(); //COMPILE GROUPS var groupsSections = configuration.GetSection("Groups").GetChildren(); List groups = new List(); foreach (var section in groupsSections) { PermissionGroup group = new PermissionGroup(); group.Name = section.GetValue("Name"); group.Permission = section.GetValue("Permission"); group.Permissions = section.GetSection("Permissions").Get(); group.Inherits = section.GetSection("Inherits").Get(); groups.Add(group); } Groups = groups.ToArray(); CreateHostBuilder(args, configuration) .Build() .Run(); } private static IHostBuilder CreateHostBuilder(string[] args, IConfiguration configuration) { var config = configuration.GetSection("WebServer"); return Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); webBuilder.UseUrls("http://0.0.0.0:" + config.GetValue("Port")); }); } } }