From 9e698bfb1e7cb8c48832efcb271b89c62cb196e6 Mon Sep 17 00:00:00 2001 From: SHM Date: Fri, 18 Jul 2025 17:35:56 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=84=B1=ED=98=84=EB=AA=A8]=20eCIA=20?= =?UTF-8?q?=EC=BB=A8=ED=94=BC=EA=B7=B8=20=EB=8F=99=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Projects/eCIA_v2/Config/eCIAConfig.json | 3 + Projects/eCIA_v2/eCIA_v2.sln | 5 ++ .../eCIA_v2.Shared/Layout/MainLayout.razor | 16 ++++- .../eCIA_v2.Shared/Models/eCIAConfig.cs | 13 ++++ .../eCIA_v2.Shared/Services/ConfigService.cs | 64 +++++++++++++++++++ .../eCIA_v2.Shared/eCIA_v2.Shared.csproj | 2 +- .../eCIA_v2/eCIA_v2/eCIA_v2.Web/Program.cs | 1 + .../eCIA_v2/eCIA_v2/eCIA_v2/MauiProgram.cs | 3 +- .../eCIA_v2/Properties/launchSettings.json | 4 ++ .../eCIA_v2/eCIA_v2/eCIA_v2/eCIA_v2.csproj | 3 +- 10 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 Projects/eCIA_v2/Config/eCIAConfig.json create mode 100644 Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Models/eCIAConfig.cs create mode 100644 Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Services/ConfigService.cs diff --git a/Projects/eCIA_v2/Config/eCIAConfig.json b/Projects/eCIA_v2/Config/eCIAConfig.json new file mode 100644 index 0000000..024ffa3 --- /dev/null +++ b/Projects/eCIA_v2/Config/eCIAConfig.json @@ -0,0 +1,3 @@ +{ + "ProjectName": "eCIA v2 by SystemX2" +} \ No newline at end of file diff --git a/Projects/eCIA_v2/eCIA_v2.sln b/Projects/eCIA_v2/eCIA_v2.sln index d6b172d..d5c0c5e 100644 --- a/Projects/eCIA_v2/eCIA_v2.sln +++ b/Projects/eCIA_v2/eCIA_v2.sln @@ -9,6 +9,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eCIA_v2.Shared", "eCIA_v2\e EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eCIA_v2.Web", "eCIA_v2\eCIA_v2.Web\eCIA_v2.Web.csproj", "{E1C6EEC0-19BF-433B-AF54-7A85034146A5}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Config", "Config", "{2A3A057F-5D22-31FD-628C-DF5EF75AEF1E}" + ProjectSection(SolutionItems) = preProject + Config\eCIAConfig.json = Config\eCIAConfig.json + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Layout/MainLayout.razor b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Layout/MainLayout.razor index ada0572..9ced8d3 100644 --- a/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Layout/MainLayout.razor +++ b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Layout/MainLayout.razor @@ -1,9 +1,11 @@ -@inherits LayoutComponentBase +@using eCIA_v2.Shared.Services +@inherits LayoutComponentBase +@inject ConfigService _configService;
- +
@Body @@ -15,4 +17,12 @@
- \ No newline at end of file + + +@code{ + protected override void OnInitialized() + { + base.OnInitialized(); + _configService?.ReadConfig(); + } +} \ No newline at end of file diff --git a/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Models/eCIAConfig.cs b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Models/eCIAConfig.cs new file mode 100644 index 0000000..3fd489b --- /dev/null +++ b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Models/eCIAConfig.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace eCIA_v2.Shared.Models +{ + public class eCIAConfig + { + public string ProjectName { get; set; } = string.Empty; + } +} diff --git a/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Services/ConfigService.cs b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Services/ConfigService.cs new file mode 100644 index 0000000..2a398c4 --- /dev/null +++ b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/Services/ConfigService.cs @@ -0,0 +1,64 @@ +using eCIA_v2.Shared.Models; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace eCIA_v2.Shared.Services +{ + public class ConfigService + { + private eCIAConfig? config = new eCIAConfig(); + + public void ReadConfig() + { + string projectDir = Path.Combine(AppContext.BaseDirectory, @"..\..\..\"); + + //Web프로젝트와 Windows프로젝트간 1뎁스 차이가 있어서 체크후 없으면 경로변경 + if (Directory.Exists($"{projectDir}../../Config") == false) + projectDir = Path.Combine(projectDir, @"..\"); + + string sourceDir = $"{projectDir}../../Config/"; + string targetDir = $"{projectDir}/bin/Config/"; + + CopyDirectory(sourceDir, targetDir); + + string readJson = File.ReadAllText($"{targetDir}/eCIAConfig.json"); + config = JsonConvert.DeserializeObject(readJson); + } + + public static void CopyDirectory(string sourceDir, string targetDir, bool overwrite = true) + { + if (!Directory.Exists(sourceDir)) + { + throw new DirectoryNotFoundException($"원본 디렉토리를 찾을 수 없습니다: {sourceDir}"); + } + + // 대상 디렉토리 생성 + Directory.CreateDirectory(targetDir); + + // 파일 복사 + foreach (string file in Directory.GetFiles(sourceDir)) + { + string destFile = Path.Combine(targetDir, Path.GetFileName(file)); + File.Copy(file, destFile, overwrite); + } + + // 하위 디렉토리 재귀적으로 복사 + foreach (string subDir in Directory.GetDirectories(sourceDir)) + { + string subDirName = Path.GetFileName(subDir); + string destSubDir = Path.Combine(targetDir, subDirName); + CopyDirectory(subDir, destSubDir, overwrite); + } + } + + public eCIAConfig? GetConfig() + { + return config; + } + } +} diff --git a/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/eCIA_v2.Shared.csproj b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/eCIA_v2.Shared.csproj index 1556dd3..76f51a1 100644 --- a/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/eCIA_v2.Shared.csproj +++ b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Shared/eCIA_v2.Shared.csproj @@ -1,4 +1,4 @@ - + net9.0 diff --git a/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Web/Program.cs b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Web/Program.cs index 8c10574..57e3de0 100644 --- a/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Web/Program.cs +++ b/Projects/eCIA_v2/eCIA_v2/eCIA_v2.Web/Program.cs @@ -11,6 +11,7 @@ builder.Services.AddRazorComponents() // Add device-specific services used by the eCIA_v2.Shared project builder.Services.AddSingleton(); +builder.Services.AddSingleton(); builder.Services.AddRadzenComponents(); diff --git a/Projects/eCIA_v2/eCIA_v2/eCIA_v2/MauiProgram.cs b/Projects/eCIA_v2/eCIA_v2/eCIA_v2/MauiProgram.cs index 61350e7..cc3b215 100644 --- a/Projects/eCIA_v2/eCIA_v2/eCIA_v2/MauiProgram.cs +++ b/Projects/eCIA_v2/eCIA_v2/eCIA_v2/MauiProgram.cs @@ -23,11 +23,12 @@ namespace eCIA_v2 builder.Services.AddMauiBlazorWebView(); builder.Services.AddRadzenComponents(); + builder.Services.AddSingleton(); + #if DEBUG builder.Services.AddBlazorWebViewDeveloperTools(); builder.Logging.AddDebug(); #endif - return builder.Build(); } } diff --git a/Projects/eCIA_v2/eCIA_v2/eCIA_v2/Properties/launchSettings.json b/Projects/eCIA_v2/eCIA_v2/eCIA_v2/Properties/launchSettings.json index 4f85793..2fe48a5 100644 --- a/Projects/eCIA_v2/eCIA_v2/eCIA_v2/Properties/launchSettings.json +++ b/Projects/eCIA_v2/eCIA_v2/eCIA_v2/Properties/launchSettings.json @@ -3,6 +3,10 @@ "Windows Machine": { "commandName": "Project", "nativeDebugging": false + }, + "WSL": { + "commandName": "WSL2", + "distributionName": "" } } } \ No newline at end of file diff --git a/Projects/eCIA_v2/eCIA_v2/eCIA_v2/eCIA_v2.csproj b/Projects/eCIA_v2/eCIA_v2/eCIA_v2/eCIA_v2.csproj index 9c37abd..55933c5 100644 --- a/Projects/eCIA_v2/eCIA_v2/eCIA_v2/eCIA_v2.csproj +++ b/Projects/eCIA_v2/eCIA_v2/eCIA_v2/eCIA_v2.csproj @@ -37,6 +37,7 @@ en + Always @@ -65,5 +66,5 @@ - +