From 96dbe7b2cdd917caed3278827723c6b141c62c7f Mon Sep 17 00:00:00 2001 From: "Namhyeon, Go" Date: Wed, 2 Apr 2025 11:25:23 +0900 Subject: [PATCH] Add Azure AI service (Azure AI Foundry), Add the AppConfig manager --- .../WelsonJS.Launcher/MainForm.cs | 6 +++--- WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs | 18 +++++++++++++++++ .../WelsonJS.Launcher/Tools/ResourceServer.cs | 20 +++++++++++++++++++ .../WelsonJS.Launcher.csproj | 1 + WelsonJS.Toolkit/WelsonJS.Launcher/app.config | 7 +++++++ 5 files changed, 49 insertions(+), 3 deletions(-) diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs index bd94471..420c8b8 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs @@ -195,7 +195,7 @@ namespace WelsonJS.Launcher private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - Program.OpenWebBrowser(Properties.Resources.RepositoryUrl); + Program.OpenWebBrowser(Program.GetAppConfig("RepositoryUrl")); } private void userdefinedVariablesToolStripMenuItem_Click(object sender, EventArgs e) @@ -245,7 +245,7 @@ namespace WelsonJS.Launcher { if (Program.resourceServer == null) { - Program.resourceServer = new ResourceServer(Properties.Resources.ResourceServerPrefix, "editor.html"); + Program.resourceServer = new ResourceServer(Program.GetAppConfig("ResourceServerPrefix"), "editor.html"); } if (!Program.resourceServer.IsRunning()) @@ -273,7 +273,7 @@ namespace WelsonJS.Launcher private void openCopilotToolStripMenuItem_Click(object sender, EventArgs e) { - Program.OpenWebBrowser(Properties.Resources.CopilotUrl); + Program.OpenWebBrowser(Program.GetAppConfig("CopilotUrl")); } } } diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs index a7248c1..899200f 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using System.Threading; using System.Windows.Forms; +using System.Configuration; using WelsonJS.Launcher.Tools; namespace WelsonJS.Launcher @@ -156,5 +157,22 @@ namespace WelsonJS.Launcher UseShellExecute = true }); } + + public static string GetAppConfig(string key) + { + string value = ConfigurationManager.AppSettings[key]; + if (!string.IsNullOrEmpty(value)) + { + return value; + } + + value = Properties.Resources.ResourceManager.GetString(key); + if (!string.IsNullOrEmpty(value)) + { + return value; + } + + return null; + } } } diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Tools/ResourceServer.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Tools/ResourceServer.cs index 2f76b0e..8f69700 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Tools/ResourceServer.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Tools/ResourceServer.cs @@ -133,6 +133,14 @@ namespace WelsonJS.Launcher.Tools return; } + // Serve a value of App Config request + const string configPrefix = "config/"; + if (path.StartsWith(configPrefix, StringComparison.OrdinalIgnoreCase)) + { + ServeConfigRequest(context, path.Substring(configPrefix.Length)); + return; + } + // Serve a resource ServeResource(context, GetResource(_resourceName), "text/html"); } @@ -272,6 +280,18 @@ namespace WelsonJS.Launcher.Tools ServeResource(context); } + public void ServeConfigRequest(HttpListenerContext context, string key) + { + string value = Program.GetAppConfig(key); + if (!String.IsNullOrEmpty(value)) + { + ServeResource(context, value, "text/plain", 200); + return; + } + + ServeResource(context); + } + private void ServeResource(HttpListenerContext context) { ServeResource(context, "Not Found", "application/xml", 404); diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/WelsonJS.Launcher.csproj b/WelsonJS.Toolkit/WelsonJS.Launcher/WelsonJS.Launcher.csproj index 3525d39..31c2e85 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/WelsonJS.Launcher.csproj +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/WelsonJS.Launcher.csproj @@ -57,6 +57,7 @@ + diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/app.config b/WelsonJS.Toolkit/WelsonJS.Launcher/app.config index 2a2d449..e4e97f2 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/app.config +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/app.config @@ -1,5 +1,12 @@ + + + + + + +