using perubahan; using Microsoft.Extensions.DependencyInjection; try { Console.WriteLine($"Kementerian ATR/BPN Kanwil Riau"); Console.WriteLine($"Agen Perubahan Server Versi {VerNum}"); Console.Write($"Loading settings file..."); if (!File.Exists(Path.Combine(AppContext.BaseDirectory, "settings.json"))) { Console.WriteLine("No settings file found. Make sure settings.json exists at BaseDirectory."); WriteLog("No default settings file found. Make sure settings.json exists at BaseDirectory."); return; } string SettingsJson = File.ReadAllText(Path.Combine(AppContext.BaseDirectory, "settings.json")); Settings = JsonNode.Parse(SettingsJson) ?? JsonNode.Parse("{}")!; Console.WriteLine($"Done."); Console.Write($"Preparing database connection string... "); SqlConnectionStringBuilder CSBuilder = new () { DataSource = (string)Settings["database"]!["datasource"]! ?? "", UserID = (string)Settings["database"]!["user"]! ?? "", Password = (string)Settings["database"]!["pass"]! ?? "", InitialCatalog = (string)Settings["database"]!["initialcatalog"]! ?? "", Encrypt = SqlConnectionEncryptOption.Mandatory, TrustServerCertificate = true }; CS = CSBuilder.ConnectionString; Console.WriteLine($"Done."); await UpdateCache(); Console.Write($"Configuring Kestrel Backend... "); IWebHost host = new WebHostBuilder() .UseKestrel(options => { options.ListenAnyIP(443, opt =>{ opt.Protocols = Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols.Http1AndHttp2; opt.UseHttps(Path.Combine(AppContext.BaseDirectory,"origin.pfx")); }); options.Limits.MaxRequestBodySize = 104857600; }) .UseContentRoot(AppContext.BaseDirectory) .Configure(app=>{ app .UseMiddleware() .UseMiddleware() .UseMiddleware() .UseMiddleware() .UseDefaultFiles() .Map("/api",APIHandler.Handle) .Map("/auth",Auth.Handle) .UseStaticFiles(); }) .Build(); host.Run(); } catch (Exception ex) { WriteLog(ex, "Program.cs"); }