From 645f46abcd1e143a093b2115122db0e778c243e3 Mon Sep 17 00:00:00 2001 From: Scottxjw <13374147+scottxjw@user.noreply.gitee.com> Date: Thu, 13 Aug 2026 13:29:56 +0800 Subject: [PATCH] =?UTF-8?q?refactor(project):=20=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=91=BD=E5=90=8D=E5=B9=B6=E7=A7=BB=E9=99=A4?= =?UTF-8?q?WPF=E5=AE=A2=E6=88=B7=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...taMiner.sln => Gpulse.WCT.DataAnalyzer.sln | 10 +- .../Configuration/AppSettings.cs | 2 +- .../PlossRecordConfiguration.cs | 4 +- .../Configurations/QfodRecordConfiguration.cs | 4 +- .../Configurations/RxTypeConfiguration.cs | 4 +- .../TestScenarioConfiguration.cs | 4 +- .../Configurations/TxHardwareConfiguration.cs | 4 +- .../Configurations/TxPanelConfiguration.cs | 4 +- .../Configurations/TxSoftwareConfiguration.cs | 4 +- .../Data/DbContextFactory.cs | 2 +- .../Data/IDbContextFactory.cs | 2 +- .../Data/SeedData.cs | 4 +- .../Data/WctMinerDbContext.cs | 4 +- .../Extensions/ServiceCollectionExtensions.cs | 8 +- .../Gpulse.WCT.DataAnalyzer.Core.csproj} | 2 + .../Models/PlossRecord.cs | 2 +- .../Models/QfodRecord.cs | 2 +- .../Models/RxType.cs | 2 +- .../Models/TestScenario.cs | 2 +- .../Models/TxHardware.cs | 2 +- .../Models/TxPanel.cs | 2 +- .../Models/TxSoftware.cs | 2 +- .../Parsers/FileNameParser.cs | 2 +- .../Parsers/IParser.cs | 2 +- .../Parsers/PlossParser.cs | 4 +- .../Parsers/QfodParser.cs | 4 +- .../Security/PathValidator.cs | 2 +- .../Security/SecurityConstants.cs | 2 +- .../Services/CleanService.cs | 6 +- .../Services/DimensionService.cs | 6 +- .../Services/ExportService.cs | 8 +- .../Services/ParseService.cs | 8 +- .../Services/ScenarioService.cs | 8 +- .../Services/StatsService.cs | 6 +- .../Services/ThresholdCalculator.cs | 2 +- .../Commands/CleanCommand.cs | 4 +- .../Commands/ExportCommand.cs | 4 +- .../Commands/ParseCommand.cs | 4 +- .../Commands/StatsCommand.cs | 4 +- .../Gpulse.WCT.DataAnalyzer.csproj} | 4 +- .../Program.cs | 14 +- src/WCTDataMiner.Wpf/App.xaml | 10 - src/WCTDataMiner.Wpf/App.xaml.cs | 123 ------------ src/WCTDataMiner.Wpf/AssemblyInfo.cs | 10 - .../Configuration/ConfigurationLoader.cs | 37 ---- .../Configuration/DefaultAppSettings.cs | 30 --- .../Converters/BooleanConverters.cs | 53 ------ src/WCTDataMiner.Wpf/MainWindow.xaml | 74 -------- src/WCTDataMiner.Wpf/MainWindow.xaml.cs | 16 -- .../Messages/DataImportedMessage.cs | 31 --- .../ViewModels/ImportViewModel.cs | 170 ----------------- .../ViewModels/MainViewModel.cs | 174 ----------------- .../ViewModels/PlossChartViewModel.cs | 140 -------------- .../ViewModels/PlossTableViewModel.cs | 87 --------- .../ViewModels/QfodChartViewModel.cs | 144 -------------- .../ViewModels/QfodTableViewModel.cs | 87 --------- .../ViewModels/ScenarioListViewModel.cs | 177 ------------------ src/WCTDataMiner.Wpf/Views/ImportView.xaml | 63 ------- src/WCTDataMiner.Wpf/Views/ImportView.xaml.cs | 12 -- .../Views/PlossChartView.xaml | 33 ---- .../Views/PlossChartView.xaml.cs | 18 -- .../Views/PlossTableView.xaml | 79 -------- .../Views/PlossTableView.xaml.cs | 14 -- src/WCTDataMiner.Wpf/Views/QfodChartView.xaml | 33 ---- .../Views/QfodChartView.xaml.cs | 18 -- src/WCTDataMiner.Wpf/Views/QfodTableView.xaml | 61 ------ .../Views/QfodTableView.xaml.cs | 14 -- .../Views/ScenarioListView.xaml | 46 ----- .../Views/ScenarioListView.xaml.cs | 31 --- src/WCTDataMiner.Wpf/WCTDataMiner.Wpf.csproj | 42 ----- 70 files changed, 84 insertions(+), 1913 deletions(-) rename WCTDataMiner.sln => Gpulse.WCT.DataAnalyzer.sln (61%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Configuration/AppSettings.cs (94%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/Configurations/PlossRecordConfiguration.cs (97%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/Configurations/QfodRecordConfiguration.cs (95%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/Configurations/RxTypeConfiguration.cs (90%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/Configurations/TestScenarioConfiguration.cs (97%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/Configurations/TxHardwareConfiguration.cs (90%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/Configurations/TxPanelConfiguration.cs (90%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/Configurations/TxSoftwareConfiguration.cs (90%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/DbContextFactory.cs (98%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/IDbContextFactory.cs (76%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/SeedData.cs (90%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Data/WctMinerDbContext.cs (91%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Extensions/ServiceCollectionExtensions.cs (88%) rename src/{WCTDataMiner.Core/WCTDataMiner.Core.csproj => Gpulse.WCT.DataAnalyzer.Core/Gpulse.WCT.DataAnalyzer.Core.csproj} (88%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Models/PlossRecord.cs (97%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Models/QfodRecord.cs (93%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Models/RxType.cs (89%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Models/TestScenario.cs (95%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Models/TxHardware.cs (89%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Models/TxPanel.cs (89%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Models/TxSoftware.cs (89%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Parsers/FileNameParser.cs (97%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Parsers/IParser.cs (96%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Parsers/PlossParser.cs (99%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Parsers/QfodParser.cs (94%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Security/PathValidator.cs (99%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Security/SecurityConstants.cs (96%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Services/CleanService.cs (95%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Services/DimensionService.cs (97%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Services/ExportService.cs (98%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Services/ParseService.cs (97%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Services/ScenarioService.cs (98%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Services/StatsService.cs (96%) rename src/{WCTDataMiner.Core => Gpulse.WCT.DataAnalyzer.Core}/Services/ThresholdCalculator.cs (96%) rename src/{WCTDataMiner => Gpulse.WCT.DataAnalyzer}/Commands/CleanCommand.cs (95%) rename src/{WCTDataMiner => Gpulse.WCT.DataAnalyzer}/Commands/ExportCommand.cs (96%) rename src/{WCTDataMiner => Gpulse.WCT.DataAnalyzer}/Commands/ParseCommand.cs (96%) rename src/{WCTDataMiner => Gpulse.WCT.DataAnalyzer}/Commands/StatsCommand.cs (97%) rename src/{WCTDataMiner/WCTDataMiner.csproj => Gpulse.WCT.DataAnalyzer/Gpulse.WCT.DataAnalyzer.csproj} (87%) rename src/{WCTDataMiner => Gpulse.WCT.DataAnalyzer}/Program.cs (88%) delete mode 100644 src/WCTDataMiner.Wpf/App.xaml delete mode 100644 src/WCTDataMiner.Wpf/App.xaml.cs delete mode 100644 src/WCTDataMiner.Wpf/AssemblyInfo.cs delete mode 100644 src/WCTDataMiner.Wpf/Configuration/ConfigurationLoader.cs delete mode 100644 src/WCTDataMiner.Wpf/Configuration/DefaultAppSettings.cs delete mode 100644 src/WCTDataMiner.Wpf/Converters/BooleanConverters.cs delete mode 100644 src/WCTDataMiner.Wpf/MainWindow.xaml delete mode 100644 src/WCTDataMiner.Wpf/MainWindow.xaml.cs delete mode 100644 src/WCTDataMiner.Wpf/Messages/DataImportedMessage.cs delete mode 100644 src/WCTDataMiner.Wpf/ViewModels/ImportViewModel.cs delete mode 100644 src/WCTDataMiner.Wpf/ViewModels/MainViewModel.cs delete mode 100644 src/WCTDataMiner.Wpf/ViewModels/PlossChartViewModel.cs delete mode 100644 src/WCTDataMiner.Wpf/ViewModels/PlossTableViewModel.cs delete mode 100644 src/WCTDataMiner.Wpf/ViewModels/QfodChartViewModel.cs delete mode 100644 src/WCTDataMiner.Wpf/ViewModels/QfodTableViewModel.cs delete mode 100644 src/WCTDataMiner.Wpf/ViewModels/ScenarioListViewModel.cs delete mode 100644 src/WCTDataMiner.Wpf/Views/ImportView.xaml delete mode 100644 src/WCTDataMiner.Wpf/Views/ImportView.xaml.cs delete mode 100644 src/WCTDataMiner.Wpf/Views/PlossChartView.xaml delete mode 100644 src/WCTDataMiner.Wpf/Views/PlossChartView.xaml.cs delete mode 100644 src/WCTDataMiner.Wpf/Views/PlossTableView.xaml delete mode 100644 src/WCTDataMiner.Wpf/Views/PlossTableView.xaml.cs delete mode 100644 src/WCTDataMiner.Wpf/Views/QfodChartView.xaml delete mode 100644 src/WCTDataMiner.Wpf/Views/QfodChartView.xaml.cs delete mode 100644 src/WCTDataMiner.Wpf/Views/QfodTableView.xaml delete mode 100644 src/WCTDataMiner.Wpf/Views/QfodTableView.xaml.cs delete mode 100644 src/WCTDataMiner.Wpf/Views/ScenarioListView.xaml delete mode 100644 src/WCTDataMiner.Wpf/Views/ScenarioListView.xaml.cs delete mode 100644 src/WCTDataMiner.Wpf/WCTDataMiner.Wpf.csproj diff --git a/WCTDataMiner.sln b/Gpulse.WCT.DataAnalyzer.sln similarity index 61% rename from WCTDataMiner.sln rename to Gpulse.WCT.DataAnalyzer.sln index e4a44b5..2092bcf 100644 --- a/WCTDataMiner.sln +++ b/Gpulse.WCT.DataAnalyzer.sln @@ -3,11 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WCTDataMiner.Core", "src\WCTDataMiner.Core\WCTDataMiner.Core.csproj", "{A1B2C3D4-1234-5678-9ABC-DEF012345601}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gpulse.WCT.DataAnalyzer.Core", "src\Gpulse.WCT.DataAnalyzer.Core\Gpulse.WCT.DataAnalyzer.Core.csproj", "{A1B2C3D4-1234-5678-9ABC-DEF012345601}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WCTDataMiner.Wpf", "src\WCTDataMiner.Wpf\WCTDataMiner.Wpf.csproj", "{A1B2C3D4-1234-5678-9ABC-DEF012345602}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WCTDataMiner", "src\WCTDataMiner\WCTDataMiner.csproj", "{A1B2C3D4-1234-5678-9ABC-DEF012345603}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gpulse.WCT.DataAnalyzer", "src\Gpulse.WCT.DataAnalyzer\Gpulse.WCT.DataAnalyzer.csproj", "{A1B2C3D4-1234-5678-9ABC-DEF012345603}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,10 +17,6 @@ Global {A1B2C3D4-1234-5678-9ABC-DEF012345601}.Debug|Any CPU.Build.0 = Debug|Any CPU {A1B2C3D4-1234-5678-9ABC-DEF012345601}.Release|Any CPU.ActiveCfg = Release|Any CPU {A1B2C3D4-1234-5678-9ABC-DEF012345601}.Release|Any CPU.Build.0 = Release|Any CPU - {A1B2C3D4-1234-5678-9ABC-DEF012345602}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1B2C3D4-1234-5678-9ABC-DEF012345602}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1B2C3D4-1234-5678-9ABC-DEF012345602}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A1B2C3D4-1234-5678-9ABC-DEF012345602}.Release|Any CPU.Build.0 = Release|Any CPU {A1B2C3D4-1234-5678-9ABC-DEF012345603}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A1B2C3D4-1234-5678-9ABC-DEF012345603}.Debug|Any CPU.Build.0 = Debug|Any CPU {A1B2C3D4-1234-5678-9ABC-DEF012345603}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/src/WCTDataMiner.Core/Configuration/AppSettings.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Configuration/AppSettings.cs similarity index 94% rename from src/WCTDataMiner.Core/Configuration/AppSettings.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Configuration/AppSettings.cs index 4582b46..0011007 100644 --- a/src/WCTDataMiner.Core/Configuration/AppSettings.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Configuration/AppSettings.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Configuration; +namespace Gpulse.WCT.DataAnalyzer.Core.Configuration; /// /// 应用配置 diff --git a/src/WCTDataMiner.Core/Data/Configurations/PlossRecordConfiguration.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/PlossRecordConfiguration.cs similarity index 97% rename from src/WCTDataMiner.Core/Data/Configurations/PlossRecordConfiguration.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/PlossRecordConfiguration.cs index 13a5b95..5b52287 100644 --- a/src/WCTDataMiner.Core/Data/Configurations/PlossRecordConfiguration.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/PlossRecordConfiguration.cs @@ -1,8 +1,8 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Data.Configurations; +namespace Gpulse.WCT.DataAnalyzer.Core.Data.Configurations; public class PlossRecordConfiguration : IEntityTypeConfiguration { diff --git a/src/WCTDataMiner.Core/Data/Configurations/QfodRecordConfiguration.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/QfodRecordConfiguration.cs similarity index 95% rename from src/WCTDataMiner.Core/Data/Configurations/QfodRecordConfiguration.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/QfodRecordConfiguration.cs index 197a5fa..d892f22 100644 --- a/src/WCTDataMiner.Core/Data/Configurations/QfodRecordConfiguration.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/QfodRecordConfiguration.cs @@ -1,8 +1,8 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Data.Configurations; +namespace Gpulse.WCT.DataAnalyzer.Core.Data.Configurations; public class QfodRecordConfiguration : IEntityTypeConfiguration { diff --git a/src/WCTDataMiner.Core/Data/Configurations/RxTypeConfiguration.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/RxTypeConfiguration.cs similarity index 90% rename from src/WCTDataMiner.Core/Data/Configurations/RxTypeConfiguration.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/RxTypeConfiguration.cs index 849c2b2..c5926e8 100644 --- a/src/WCTDataMiner.Core/Data/Configurations/RxTypeConfiguration.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/RxTypeConfiguration.cs @@ -1,8 +1,8 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Data.Configurations; +namespace Gpulse.WCT.DataAnalyzer.Core.Data.Configurations; public class RxTypeConfiguration : IEntityTypeConfiguration { diff --git a/src/WCTDataMiner.Core/Data/Configurations/TestScenarioConfiguration.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TestScenarioConfiguration.cs similarity index 97% rename from src/WCTDataMiner.Core/Data/Configurations/TestScenarioConfiguration.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TestScenarioConfiguration.cs index 0698299..4510afc 100644 --- a/src/WCTDataMiner.Core/Data/Configurations/TestScenarioConfiguration.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TestScenarioConfiguration.cs @@ -1,8 +1,8 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Data.Configurations; +namespace Gpulse.WCT.DataAnalyzer.Core.Data.Configurations; public class TestScenarioConfiguration : IEntityTypeConfiguration { diff --git a/src/WCTDataMiner.Core/Data/Configurations/TxHardwareConfiguration.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TxHardwareConfiguration.cs similarity index 90% rename from src/WCTDataMiner.Core/Data/Configurations/TxHardwareConfiguration.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TxHardwareConfiguration.cs index fd643ce..4f66f31 100644 --- a/src/WCTDataMiner.Core/Data/Configurations/TxHardwareConfiguration.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TxHardwareConfiguration.cs @@ -1,8 +1,8 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Data.Configurations; +namespace Gpulse.WCT.DataAnalyzer.Core.Data.Configurations; public class TxHardwareConfiguration : IEntityTypeConfiguration { diff --git a/src/WCTDataMiner.Core/Data/Configurations/TxPanelConfiguration.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TxPanelConfiguration.cs similarity index 90% rename from src/WCTDataMiner.Core/Data/Configurations/TxPanelConfiguration.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TxPanelConfiguration.cs index 6dbd13d..13b706d 100644 --- a/src/WCTDataMiner.Core/Data/Configurations/TxPanelConfiguration.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TxPanelConfiguration.cs @@ -1,8 +1,8 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Data.Configurations; +namespace Gpulse.WCT.DataAnalyzer.Core.Data.Configurations; public class TxPanelConfiguration : IEntityTypeConfiguration { diff --git a/src/WCTDataMiner.Core/Data/Configurations/TxSoftwareConfiguration.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TxSoftwareConfiguration.cs similarity index 90% rename from src/WCTDataMiner.Core/Data/Configurations/TxSoftwareConfiguration.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TxSoftwareConfiguration.cs index 2d454f4..e33e3b1 100644 --- a/src/WCTDataMiner.Core/Data/Configurations/TxSoftwareConfiguration.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/Configurations/TxSoftwareConfiguration.cs @@ -1,8 +1,8 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Data.Configurations; +namespace Gpulse.WCT.DataAnalyzer.Core.Data.Configurations; public class TxSoftwareConfiguration : IEntityTypeConfiguration { diff --git a/src/WCTDataMiner.Core/Data/DbContextFactory.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/DbContextFactory.cs similarity index 98% rename from src/WCTDataMiner.Core/Data/DbContextFactory.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/DbContextFactory.cs index af93a86..b69274b 100644 --- a/src/WCTDataMiner.Core/Data/DbContextFactory.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/DbContextFactory.cs @@ -1,7 +1,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; -namespace WCTDataMiner.Core.Data; +namespace Gpulse.WCT.DataAnalyzer.Core.Data; /// /// 数据库上下文工厂实现 - 支持SQLite和PostgreSQL切换 diff --git a/src/WCTDataMiner.Core/Data/IDbContextFactory.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/IDbContextFactory.cs similarity index 76% rename from src/WCTDataMiner.Core/Data/IDbContextFactory.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/IDbContextFactory.cs index 2257625..f0283b2 100644 --- a/src/WCTDataMiner.Core/Data/IDbContextFactory.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/IDbContextFactory.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Data; +namespace Gpulse.WCT.DataAnalyzer.Core.Data; /// /// 数据库上下文工厂接口 diff --git a/src/WCTDataMiner.Core/Data/SeedData.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/SeedData.cs similarity index 90% rename from src/WCTDataMiner.Core/Data/SeedData.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/SeedData.cs index f715393..72654b1 100644 --- a/src/WCTDataMiner.Core/Data/SeedData.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/SeedData.cs @@ -1,6 +1,6 @@ -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Data; +namespace Gpulse.WCT.DataAnalyzer.Core.Data; /// /// 初始数据种子 diff --git a/src/WCTDataMiner.Core/Data/WctMinerDbContext.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Data/WctMinerDbContext.cs similarity index 91% rename from src/WCTDataMiner.Core/Data/WctMinerDbContext.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Data/WctMinerDbContext.cs index ac410a7..f2e912d 100644 --- a/src/WCTDataMiner.Core/Data/WctMinerDbContext.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Data/WctMinerDbContext.cs @@ -1,7 +1,7 @@ using Microsoft.EntityFrameworkCore; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Data; +namespace Gpulse.WCT.DataAnalyzer.Core.Data; /// /// WCT数据采集数据库上下文 diff --git a/src/WCTDataMiner.Core/Extensions/ServiceCollectionExtensions.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Extensions/ServiceCollectionExtensions.cs similarity index 88% rename from src/WCTDataMiner.Core/Extensions/ServiceCollectionExtensions.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Extensions/ServiceCollectionExtensions.cs index 629f3c8..95fdd87 100644 --- a/src/WCTDataMiner.Core/Extensions/ServiceCollectionExtensions.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Extensions/ServiceCollectionExtensions.cs @@ -1,10 +1,10 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using WCTDataMiner.Core.Data; -using WCTDataMiner.Core.Parsers; -using WCTDataMiner.Core.Services; +using Gpulse.WCT.DataAnalyzer.Core.Data; +using Gpulse.WCT.DataAnalyzer.Core.Parsers; +using Gpulse.WCT.DataAnalyzer.Core.Services; -namespace WCTDataMiner.Core.Extensions; +namespace Gpulse.WCT.DataAnalyzer.Core.Extensions; /// /// 服务注册扩展 diff --git a/src/WCTDataMiner.Core/WCTDataMiner.Core.csproj b/src/Gpulse.WCT.DataAnalyzer.Core/Gpulse.WCT.DataAnalyzer.Core.csproj similarity index 88% rename from src/WCTDataMiner.Core/WCTDataMiner.Core.csproj rename to src/Gpulse.WCT.DataAnalyzer.Core/Gpulse.WCT.DataAnalyzer.Core.csproj index a0bbb19..453200b 100644 --- a/src/WCTDataMiner.Core/WCTDataMiner.Core.csproj +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Gpulse.WCT.DataAnalyzer.Core.csproj @@ -1,6 +1,8 @@ + Gpulse.WCT.DataAnalyzer.Core + Gpulse.WCT.DataAnalyzer.Core net8.0 enable enable diff --git a/src/WCTDataMiner.Core/Models/PlossRecord.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Models/PlossRecord.cs similarity index 97% rename from src/WCTDataMiner.Core/Models/PlossRecord.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Models/PlossRecord.cs index 332fe35..95d5eb2 100644 --- a/src/WCTDataMiner.Core/Models/PlossRecord.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Models/PlossRecord.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Models; +namespace Gpulse.WCT.DataAnalyzer.Core.Models; /// /// Ploss记录实体 - 存储Ploss FOD格式解析数据 diff --git a/src/WCTDataMiner.Core/Models/QfodRecord.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Models/QfodRecord.cs similarity index 93% rename from src/WCTDataMiner.Core/Models/QfodRecord.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Models/QfodRecord.cs index 762f6ad..3dcfecc 100644 --- a/src/WCTDataMiner.Core/Models/QfodRecord.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Models/QfodRecord.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Models; +namespace Gpulse.WCT.DataAnalyzer.Core.Models; /// /// Qfod记录实体 - 存储Qfod格式解析数据 diff --git a/src/WCTDataMiner.Core/Models/RxType.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Models/RxType.cs similarity index 89% rename from src/WCTDataMiner.Core/Models/RxType.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Models/RxType.cs index ec15f2e..71989b0 100644 --- a/src/WCTDataMiner.Core/Models/RxType.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Models/RxType.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Models; +namespace Gpulse.WCT.DataAnalyzer.Core.Models; /// /// RX类型维度表 diff --git a/src/WCTDataMiner.Core/Models/TestScenario.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Models/TestScenario.cs similarity index 95% rename from src/WCTDataMiner.Core/Models/TestScenario.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Models/TestScenario.cs index dde7190..1e53e72 100644 --- a/src/WCTDataMiner.Core/Models/TestScenario.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Models/TestScenario.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Models; +namespace Gpulse.WCT.DataAnalyzer.Core.Models; /// /// 测试场景实体 - 通过外键关联各维度表 diff --git a/src/WCTDataMiner.Core/Models/TxHardware.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Models/TxHardware.cs similarity index 89% rename from src/WCTDataMiner.Core/Models/TxHardware.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Models/TxHardware.cs index d6415b3..f5cb815 100644 --- a/src/WCTDataMiner.Core/Models/TxHardware.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Models/TxHardware.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Models; +namespace Gpulse.WCT.DataAnalyzer.Core.Models; /// /// TX硬件版本维度表 diff --git a/src/WCTDataMiner.Core/Models/TxPanel.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Models/TxPanel.cs similarity index 89% rename from src/WCTDataMiner.Core/Models/TxPanel.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Models/TxPanel.cs index 7635b76..d631f3d 100644 --- a/src/WCTDataMiner.Core/Models/TxPanel.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Models/TxPanel.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Models; +namespace Gpulse.WCT.DataAnalyzer.Core.Models; /// /// TX面板类型维度表 diff --git a/src/WCTDataMiner.Core/Models/TxSoftware.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Models/TxSoftware.cs similarity index 89% rename from src/WCTDataMiner.Core/Models/TxSoftware.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Models/TxSoftware.cs index 1c22c8b..7e8b4b0 100644 --- a/src/WCTDataMiner.Core/Models/TxSoftware.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Models/TxSoftware.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Models; +namespace Gpulse.WCT.DataAnalyzer.Core.Models; /// /// TX软件版本维度表 diff --git a/src/WCTDataMiner.Core/Parsers/FileNameParser.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Parsers/FileNameParser.cs similarity index 97% rename from src/WCTDataMiner.Core/Parsers/FileNameParser.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Parsers/FileNameParser.cs index c33b6ce..612771a 100644 --- a/src/WCTDataMiner.Core/Parsers/FileNameParser.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Parsers/FileNameParser.cs @@ -1,6 +1,6 @@ using System.Globalization; -namespace WCTDataMiner.Core.Parsers; +namespace Gpulse.WCT.DataAnalyzer.Core.Parsers; /// /// 文件名解析器 - 从文件名提取场景信息 diff --git a/src/WCTDataMiner.Core/Parsers/IParser.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Parsers/IParser.cs similarity index 96% rename from src/WCTDataMiner.Core/Parsers/IParser.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Parsers/IParser.cs index 918a3b8..5134a9d 100644 --- a/src/WCTDataMiner.Core/Parsers/IParser.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Parsers/IParser.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Parsers; +namespace Gpulse.WCT.DataAnalyzer.Core.Parsers; /// /// 通用解析器接口 diff --git a/src/WCTDataMiner.Core/Parsers/PlossParser.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Parsers/PlossParser.cs similarity index 99% rename from src/WCTDataMiner.Core/Parsers/PlossParser.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Parsers/PlossParser.cs index 9821a9b..f61464e 100644 --- a/src/WCTDataMiner.Core/Parsers/PlossParser.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Parsers/PlossParser.cs @@ -1,7 +1,7 @@ using System.Text.RegularExpressions; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Parsers; +namespace Gpulse.WCT.DataAnalyzer.Core.Parsers; /// /// Ploss FOD日志解析器 - 支持两行格式 diff --git a/src/WCTDataMiner.Core/Parsers/QfodParser.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Parsers/QfodParser.cs similarity index 94% rename from src/WCTDataMiner.Core/Parsers/QfodParser.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Parsers/QfodParser.cs index 15cae01..3c3242d 100644 --- a/src/WCTDataMiner.Core/Parsers/QfodParser.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Parsers/QfodParser.cs @@ -1,7 +1,7 @@ using System.Text.RegularExpressions; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Parsers; +namespace Gpulse.WCT.DataAnalyzer.Core.Parsers; /// /// Qfod日志解析器 diff --git a/src/WCTDataMiner.Core/Security/PathValidator.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Security/PathValidator.cs similarity index 99% rename from src/WCTDataMiner.Core/Security/PathValidator.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Security/PathValidator.cs index 4177175..3edd08b 100644 --- a/src/WCTDataMiner.Core/Security/PathValidator.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Security/PathValidator.cs @@ -1,6 +1,6 @@ using System.Text.RegularExpressions; -namespace WCTDataMiner.Core.Security; +namespace Gpulse.WCT.DataAnalyzer.Core.Security; /// /// 路径验证结果 diff --git a/src/WCTDataMiner.Core/Security/SecurityConstants.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Security/SecurityConstants.cs similarity index 96% rename from src/WCTDataMiner.Core/Security/SecurityConstants.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Security/SecurityConstants.cs index 3a2d8ff..29467c0 100644 --- a/src/WCTDataMiner.Core/Security/SecurityConstants.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Security/SecurityConstants.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Security; +namespace Gpulse.WCT.DataAnalyzer.Core.Security; /// /// 安全相关常量定义 diff --git a/src/WCTDataMiner.Core/Services/CleanService.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Services/CleanService.cs similarity index 95% rename from src/WCTDataMiner.Core/Services/CleanService.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Services/CleanService.cs index 8c9c0ca..32d56ef 100644 --- a/src/WCTDataMiner.Core/Services/CleanService.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Services/CleanService.cs @@ -1,9 +1,9 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using WCTDataMiner.Core.Data; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Data; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Services; +namespace Gpulse.WCT.DataAnalyzer.Core.Services; /// /// 数据清理服务 - 支持软删除 diff --git a/src/WCTDataMiner.Core/Services/DimensionService.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Services/DimensionService.cs similarity index 97% rename from src/WCTDataMiner.Core/Services/DimensionService.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Services/DimensionService.cs index 9e7cc4f..95b0a02 100644 --- a/src/WCTDataMiner.Core/Services/DimensionService.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Services/DimensionService.cs @@ -1,9 +1,9 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using WCTDataMiner.Core.Data; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Data; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Services; +namespace Gpulse.WCT.DataAnalyzer.Core.Services; /// /// 维度表管理服务 - 负责维度表的CRUD操作(并发安全版本) diff --git a/src/WCTDataMiner.Core/Services/ExportService.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Services/ExportService.cs similarity index 98% rename from src/WCTDataMiner.Core/Services/ExportService.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Services/ExportService.cs index d86e68d..1ae8631 100644 --- a/src/WCTDataMiner.Core/Services/ExportService.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Services/ExportService.cs @@ -3,11 +3,11 @@ using System.Text; using System.Text.Json; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using WCTDataMiner.Core.Data; -using WCTDataMiner.Core.Models; -using WCTDataMiner.Core.Security; +using Gpulse.WCT.DataAnalyzer.Core.Data; +using Gpulse.WCT.DataAnalyzer.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Security; -namespace WCTDataMiner.Core.Services; +namespace Gpulse.WCT.DataAnalyzer.Core.Services; /// /// 数据导出服务 - 支持安全的路径验证和 RFC 4180 标准 CSV 转义 diff --git a/src/WCTDataMiner.Core/Services/ParseService.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Services/ParseService.cs similarity index 97% rename from src/WCTDataMiner.Core/Services/ParseService.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Services/ParseService.cs index 3863d58..c214028 100644 --- a/src/WCTDataMiner.Core/Services/ParseService.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Services/ParseService.cs @@ -1,11 +1,11 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; -using WCTDataMiner.Core.Data; -using WCTDataMiner.Core.Models; -using WCTDataMiner.Core.Parsers; +using Gpulse.WCT.DataAnalyzer.Core.Data; +using Gpulse.WCT.DataAnalyzer.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Parsers; -namespace WCTDataMiner.Core.Services; +namespace Gpulse.WCT.DataAnalyzer.Core.Services; /// /// 解析流程协调服务 - 协调文件名解析、行解析、批量写入 diff --git a/src/WCTDataMiner.Core/Services/ScenarioService.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Services/ScenarioService.cs similarity index 98% rename from src/WCTDataMiner.Core/Services/ScenarioService.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Services/ScenarioService.cs index 4ac0b39..1b8c7e8 100644 --- a/src/WCTDataMiner.Core/Services/ScenarioService.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Services/ScenarioService.cs @@ -1,10 +1,10 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using WCTDataMiner.Core.Data; -using WCTDataMiner.Core.Models; -using WCTDataMiner.Core.Parsers; +using Gpulse.WCT.DataAnalyzer.Core.Data; +using Gpulse.WCT.DataAnalyzer.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Parsers; -namespace WCTDataMiner.Core.Services; +namespace Gpulse.WCT.DataAnalyzer.Core.Services; /// /// 篮选条件常量 diff --git a/src/WCTDataMiner.Core/Services/StatsService.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Services/StatsService.cs similarity index 96% rename from src/WCTDataMiner.Core/Services/StatsService.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Services/StatsService.cs index 9ad46cf..72c5b5b 100644 --- a/src/WCTDataMiner.Core/Services/StatsService.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Services/StatsService.cs @@ -1,9 +1,9 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using WCTDataMiner.Core.Data; -using WCTDataMiner.Core.Models; +using Gpulse.WCT.DataAnalyzer.Core.Data; +using Gpulse.WCT.DataAnalyzer.Core.Models; -namespace WCTDataMiner.Core.Services; +namespace Gpulse.WCT.DataAnalyzer.Core.Services; /// /// 统计查询服务 - 使用数据库端聚合优化内存效率 diff --git a/src/WCTDataMiner.Core/Services/ThresholdCalculator.cs b/src/Gpulse.WCT.DataAnalyzer.Core/Services/ThresholdCalculator.cs similarity index 96% rename from src/WCTDataMiner.Core/Services/ThresholdCalculator.cs rename to src/Gpulse.WCT.DataAnalyzer.Core/Services/ThresholdCalculator.cs index de3d227..2def79a 100644 --- a/src/WCTDataMiner.Core/Services/ThresholdCalculator.cs +++ b/src/Gpulse.WCT.DataAnalyzer.Core/Services/ThresholdCalculator.cs @@ -1,4 +1,4 @@ -namespace WCTDataMiner.Core.Services; +namespace Gpulse.WCT.DataAnalyzer.Core.Services; /// /// 阈值计算器 - 根据接收功率查表获取动态阈值 diff --git a/src/WCTDataMiner/Commands/CleanCommand.cs b/src/Gpulse.WCT.DataAnalyzer/Commands/CleanCommand.cs similarity index 95% rename from src/WCTDataMiner/Commands/CleanCommand.cs rename to src/Gpulse.WCT.DataAnalyzer/Commands/CleanCommand.cs index 0b9da7c..216db79 100644 --- a/src/WCTDataMiner/Commands/CleanCommand.cs +++ b/src/Gpulse.WCT.DataAnalyzer/Commands/CleanCommand.cs @@ -1,7 +1,7 @@ using System.CommandLine; -using WCTDataMiner.Core.Services; +using Gpulse.WCT.DataAnalyzer.Core.Services; -namespace WCTDataMiner.Commands; +namespace Gpulse.WCT.DataAnalyzer.Commands; /// /// 数据清理命令 diff --git a/src/WCTDataMiner/Commands/ExportCommand.cs b/src/Gpulse.WCT.DataAnalyzer/Commands/ExportCommand.cs similarity index 96% rename from src/WCTDataMiner/Commands/ExportCommand.cs rename to src/Gpulse.WCT.DataAnalyzer/Commands/ExportCommand.cs index 54c87e9..1b8156a 100644 --- a/src/WCTDataMiner/Commands/ExportCommand.cs +++ b/src/Gpulse.WCT.DataAnalyzer/Commands/ExportCommand.cs @@ -1,7 +1,7 @@ using System.CommandLine; -using WCTDataMiner.Core.Services; +using Gpulse.WCT.DataAnalyzer.Core.Services; -namespace WCTDataMiner.Commands; +namespace Gpulse.WCT.DataAnalyzer.Commands; /// /// 数据导出命令 diff --git a/src/WCTDataMiner/Commands/ParseCommand.cs b/src/Gpulse.WCT.DataAnalyzer/Commands/ParseCommand.cs similarity index 96% rename from src/WCTDataMiner/Commands/ParseCommand.cs rename to src/Gpulse.WCT.DataAnalyzer/Commands/ParseCommand.cs index 18b9504..9f7c040 100644 --- a/src/WCTDataMiner/Commands/ParseCommand.cs +++ b/src/Gpulse.WCT.DataAnalyzer/Commands/ParseCommand.cs @@ -1,7 +1,7 @@ using System.CommandLine; -using WCTDataMiner.Core.Services; +using Gpulse.WCT.DataAnalyzer.Core.Services; -namespace WCTDataMiner.Commands; +namespace Gpulse.WCT.DataAnalyzer.Commands; /// /// 解析日志文件命令 diff --git a/src/WCTDataMiner/Commands/StatsCommand.cs b/src/Gpulse.WCT.DataAnalyzer/Commands/StatsCommand.cs similarity index 97% rename from src/WCTDataMiner/Commands/StatsCommand.cs rename to src/Gpulse.WCT.DataAnalyzer/Commands/StatsCommand.cs index 2bd3eeb..3d517bf 100644 --- a/src/WCTDataMiner/Commands/StatsCommand.cs +++ b/src/Gpulse.WCT.DataAnalyzer/Commands/StatsCommand.cs @@ -1,7 +1,7 @@ using System.CommandLine; -using WCTDataMiner.Core.Services; +using Gpulse.WCT.DataAnalyzer.Core.Services; -namespace WCTDataMiner.Commands; +namespace Gpulse.WCT.DataAnalyzer.Commands; /// /// 统计查询命令 diff --git a/src/WCTDataMiner/WCTDataMiner.csproj b/src/Gpulse.WCT.DataAnalyzer/Gpulse.WCT.DataAnalyzer.csproj similarity index 87% rename from src/WCTDataMiner/WCTDataMiner.csproj rename to src/Gpulse.WCT.DataAnalyzer/Gpulse.WCT.DataAnalyzer.csproj index 0fcc894..214a0a0 100644 --- a/src/WCTDataMiner/WCTDataMiner.csproj +++ b/src/Gpulse.WCT.DataAnalyzer/Gpulse.WCT.DataAnalyzer.csproj @@ -1,6 +1,8 @@ + Gpulse.WCT.DataAnalyzer + Gpulse.WCT.DataAnalyzer Exe net8.0 enable @@ -30,7 +32,7 @@ - + diff --git a/src/WCTDataMiner/Program.cs b/src/Gpulse.WCT.DataAnalyzer/Program.cs similarity index 88% rename from src/WCTDataMiner/Program.cs rename to src/Gpulse.WCT.DataAnalyzer/Program.cs index 5437364..2f0da0c 100644 --- a/src/WCTDataMiner/Program.cs +++ b/src/Gpulse.WCT.DataAnalyzer/Program.cs @@ -3,15 +3,15 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Serilog; -using WCTDataMiner.Commands; -using WCTDataMiner.Core.Data; -using WCTDataMiner.Core.Extensions; -using WCTDataMiner.Core.Services; +using Gpulse.WCT.DataAnalyzer.Commands; +using Gpulse.WCT.DataAnalyzer.Core.Data; +using Gpulse.WCT.DataAnalyzer.Core.Extensions; +using Gpulse.WCT.DataAnalyzer.Core.Services; -namespace WCTDataMiner; +namespace Gpulse.WCT.DataAnalyzer; /// -/// WCTDataMiner - 无线充电FOD日志数据采集系统 +/// Gpulse.WCT.DataAnalyzer - 无线充电FOD日志数据采集系统 /// public class Program { @@ -67,7 +67,7 @@ public class Program using var commandScope = app.Services.CreateScope(); var provider = commandScope.ServiceProvider; - var rootCommand = new RootCommand("WCTDataMiner - FOD Log Data Parser"); + var rootCommand = new RootCommand("Gpulse.WCT.DataAnalyzer - FOD Log Data Parser"); rootCommand.AddCommand(new ParseCommand(provider.GetRequiredService())); rootCommand.AddCommand(new StatsCommand(provider.GetRequiredService())); diff --git a/src/WCTDataMiner.Wpf/App.xaml b/src/WCTDataMiner.Wpf/App.xaml deleted file mode 100644 index 5e2c2cf..0000000 --- a/src/WCTDataMiner.Wpf/App.xaml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/WCTDataMiner.Wpf/App.xaml.cs b/src/WCTDataMiner.Wpf/App.xaml.cs deleted file mode 100644 index 3b7ba0e..0000000 --- a/src/WCTDataMiner.Wpf/App.xaml.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System.IO; -using System.Windows; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Serilog; -using WCTDataMiner.Core.Extensions; -using WCTDataMiner.Core.Services; -using WCTDataMiner.Wpf.Configuration; -using WCTDataMiner.Wpf.ViewModels; -using WCTDataMiner.Wpf.Views; - -namespace WCTDataMiner.Wpf; - -/// -/// Interaction logic for App.xaml -/// -public partial class App : Application -{ - private IHost? _host; - private ILogger? _logger; - - protected override void OnStartup(StartupEventArgs e) - { - // 使用 ConfigurationLoader 加载配置,支持文件缺失 - var configuration = ConfigurationLoader.LoadConfiguration( - AppDomain.CurrentDomain.BaseDirectory, - out var configFileExists); - - // 配置 Serilog - 从配置文件读取 - Log.Logger = new LoggerConfiguration() - .ReadFrom.Configuration(configuration) - .Enrich.FromLogContext() - .CreateLogger(); - - _logger = Log.ForContext(); - - if (!configFileExists) - { - _logger.Information("配置文件 appsettings.json 不存在,使用默认配置启动"); - } - - _logger.Information("WCTDataMiner WPF 应用启动"); - - _host = Host.CreateDefaultBuilder() - .ConfigureAppConfiguration((context, configBuilder) => - { - configBuilder.Sources.Clear(); - configBuilder.SetBasePath(AppDomain.CurrentDomain.BaseDirectory); - - if (configFileExists) - { - configBuilder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); - } - else - { - configBuilder.AddInMemoryCollection(DefaultAppSettings.GetDefaultConfiguration()); - } - - configBuilder.AddEnvironmentVariables("WCTDM_"); - }) - .ConfigureServices((context, services) => - { - // 添加 Serilog - services.AddSerilog(); - - // 注册 Core 层服务 - services.AddDatabaseServices(context.Configuration); - services.AddApplicationServices(); - - // 注册 ViewModels(使用 Singleton 确保消息订阅正确工作) - services.AddSingleton(); - services.AddSingleton(); - // Chart ViewModels 使用 Transient,每次导航创建新实例 - services.AddTransient(); - services.AddTransient(); - // Table ViewModels 使用 Transient,每次导航创建新实例 - services.AddTransient(); - services.AddTransient(); - services.AddSingleton(); - - // 注册 Views - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - }) - .Build(); - - var mainWindow = _host.Services.GetRequiredService(); - - // 初始化加载场景数据 - var mainViewModel = _host.Services.GetRequiredService(); - mainWindow.Loaded += async (s, e) => - { - try - { - await mainViewModel.InitializeAsync(); - } - catch (Exception ex) - { - _logger?.Error(ex, "主窗口初始化失败"); - MessageBox.Show($"应用初始化失败: {ex.Message}", "错误", - MessageBoxButton.OK, MessageBoxImage.Error); - } - }; - - mainWindow.Show(); - - base.OnStartup(e); - } - - protected override void OnExit(ExitEventArgs e) - { - _logger?.Information("WCTDataMiner WPF 应用退出"); - Log.CloseAndFlush(); - _host?.Dispose(); - base.OnExit(e); - } -} \ No newline at end of file diff --git a/src/WCTDataMiner.Wpf/AssemblyInfo.cs b/src/WCTDataMiner.Wpf/AssemblyInfo.cs deleted file mode 100644 index cc29e7f..0000000 --- a/src/WCTDataMiner.Wpf/AssemblyInfo.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Windows; - -[assembly:ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] diff --git a/src/WCTDataMiner.Wpf/Configuration/ConfigurationLoader.cs b/src/WCTDataMiner.Wpf/Configuration/ConfigurationLoader.cs deleted file mode 100644 index 01a3cdb..0000000 --- a/src/WCTDataMiner.Wpf/Configuration/ConfigurationLoader.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System.IO; -using Microsoft.Extensions.Configuration; - -namespace WCTDataMiner.Wpf.Configuration; - -/// -/// 配置加载器 - 支持配置文件缺失时的默认配置 -/// -public static class ConfigurationLoader -{ - /// - /// 加载配置,如果文件不存在则使用默认配置 - /// - /// 配置文件基础路径 - /// 输出参数:指示配置文件是否存在 - /// 配置对象 - public static IConfiguration LoadConfiguration(string basePath, out bool configFileExists) - { - var settingsPath = Path.Combine(basePath, "appsettings.json"); - configFileExists = File.Exists(settingsPath); - - var builder = new ConfigurationBuilder().SetBasePath(basePath); - - if (configFileExists) - { - builder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); - } - else - { - // 使用默认配置 - builder.AddInMemoryCollection(DefaultAppSettings.GetDefaultConfiguration()); - } - - builder.AddEnvironmentVariables("WCTDM_"); - return builder.Build(); - } -} \ No newline at end of file diff --git a/src/WCTDataMiner.Wpf/Configuration/DefaultAppSettings.cs b/src/WCTDataMiner.Wpf/Configuration/DefaultAppSettings.cs deleted file mode 100644 index cfd1221..0000000 --- a/src/WCTDataMiner.Wpf/Configuration/DefaultAppSettings.cs +++ /dev/null @@ -1,30 +0,0 @@ -namespace WCTDataMiner.Wpf.Configuration; - -/// -/// 默认应用配置 - 当配置文件缺失时使用 -/// -public static class DefaultAppSettings -{ - /// - /// 获取默认配置字典 - /// - public static Dictionary GetDefaultConfiguration() - { - return new Dictionary - { - // Serilog 配置 - ["Serilog:MinimumLevel:Default"] = "Information", - ["Serilog:MinimumLevel:Override:WCTDataMiner"] = "Debug", - ["Serilog:MinimumLevel:Override:Microsoft"] = "Warning", - ["Serilog:WriteTo:0:Name"] = "Console", - ["Serilog:WriteTo:1:Name"] = "File", - ["Serilog:WriteTo:1:Args:path"] = "./data/logs/wctdataminer-.log", - ["Serilog:WriteTo:1:Args:rollingInterval"] = "Day", - ["Serilog:WriteTo:1:Args:outputTemplate"] = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}", - - // 数据库配置 - ["Database:Type"] = "sqlite", - ["Database:Path"] = "./data/database/wctminer.db" - }; - } -} \ No newline at end of file diff --git a/src/WCTDataMiner.Wpf/Converters/BooleanConverters.cs b/src/WCTDataMiner.Wpf/Converters/BooleanConverters.cs deleted file mode 100644 index 582319d..0000000 --- a/src/WCTDataMiner.Wpf/Converters/BooleanConverters.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; - -namespace WCTDataMiner.Wpf.Converters; - -/// -/// Boolean to Visibility 转换器 -/// -public class BooleanToVisibilityConverter : IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool boolValue) - { - return boolValue ? Visibility.Visible : Visibility.Collapsed; - } - return Visibility.Collapsed; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is Visibility visibility) - { - return visibility == Visibility.Visible; - } - return false; - } -} - -/// -/// 反转 Boolean 转换器 -/// -public class InverseBooleanConverter : IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool boolValue) - { - return !boolValue; - } - return true; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool boolValue) - { - return !boolValue; - } - return false; - } -} \ No newline at end of file diff --git a/src/WCTDataMiner.Wpf/MainWindow.xaml b/src/WCTDataMiner.Wpf/MainWindow.xaml deleted file mode 100644 index 097bb9c..0000000 --- a/src/WCTDataMiner.Wpf/MainWindow.xaml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - -