From 371c6681ba47bc9e76ab8bfeffc171a9201092cd Mon Sep 17 00:00:00 2001
From: Tongg <tongguibina@163.com>
Date: Tue, 31 Dec 2024 11:06:16 +0800
Subject: [PATCH] review

---
 Language/zh_CN.xaml                  |  5 +++++
 Model/Helper/DataBaseHelper.cs       |  4 ++--
 Model/Helper/MultilingualHelper.cs   |  4 ++--
 Model/Services/AlgorithmServer.cs    |  8 ++++++--
 Model/Services/SOCClientService.cs   | 11 +++++++++--
 ViewModel/BaseWindow/HomeWindowVM.cs |  8 +++++---
 6 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/Language/zh_CN.xaml b/Language/zh_CN.xaml
index e46a666..004a196 100644
--- a/Language/zh_CN.xaml
+++ b/Language/zh_CN.xaml
@@ -189,4 +189,9 @@
     <sys:String x:Key="ImageFileReadFailure">图片文件读取失败</sys:String>     
     <sys:String x:Key="JsonParseFailure">JSON解析失败</sys:String>        
     
+    
+    
+    <sys:String x:Key="ApplicationError">应用程序出现错误:</sys:String>        
+    
+    
 </ResourceDictionary>
\ No newline at end of file
diff --git a/Model/Helper/DataBaseHelper.cs b/Model/Helper/DataBaseHelper.cs
index 4f9eefa..81ac5b7 100644
--- a/Model/Helper/DataBaseHelper.cs
+++ b/Model/Helper/DataBaseHelper.cs
@@ -146,7 +146,7 @@ public class DataBaseHelper
         catch (Exception ex)
         {
             Logger.Error($"全局异常捕获:{ex.Message}", ex);
-            System.Windows.MessageBox.Show($"应用程序出现错误:{ex.Message}");
+            System.Windows.MessageBox.Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
         }
         return null;
     }
@@ -201,7 +201,7 @@ public class DataBaseHelper
         catch (Exception ex)
         {
             Logger.Error($"全局异常捕获:{ex.Message}", ex);
-            System.Windows.MessageBox.Show($"应用程序出现错误:{ex.Message}");
+            System.Windows.MessageBox.Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
         }
         return null;
     }
diff --git a/Model/Helper/MultilingualHelper.cs b/Model/Helper/MultilingualHelper.cs
index 1a2df88..d785119 100644
--- a/Model/Helper/MultilingualHelper.cs
+++ b/Model/Helper/MultilingualHelper.cs
@@ -65,13 +65,13 @@ public class MultilingualHelper
             else
             {
                 // 如果未找到对应的资源字典,给出提示信息
-                MessageBox.Show($"未找到与 {resourceKey} 对应的资源字典,请检查资源配置。");
+                MessageBox.Show($"We could not find the {resourceKey} resource, check the multi-language configuration");
             }
         }
         else
         {
             // 如果未找到对应的资源字典(根据传入的resourceKey),给出提示信息
-            MessageBox.Show($"未找到对应 {resourceKey} 的资源字典,请检查App.xaml中的资源配置。");
+            MessageBox.Show($"We could not find the {resourceKey} resource, check the multi-language configuration");
         }
 
    
diff --git a/Model/Services/AlgorithmServer.cs b/Model/Services/AlgorithmServer.cs
index 295a382..d926e9a 100644
--- a/Model/Services/AlgorithmServer.cs
+++ b/Model/Services/AlgorithmServer.cs
@@ -1,6 +1,7 @@
 using System.Data;
 using System.Runtime.InteropServices;
 using System.Windows.Forms;
+using log4net;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using SparkClient.Model.Entity.ApiEntity;
@@ -10,7 +11,7 @@ namespace SparkClient.Model.Services
 {
     public class AlgorithmServer
     {
-
+        private static readonly ILog Logger = LogManager.GetLogger(typeof(AlgorithmServer));
         // 导入 C++ DLL 中的 DetectDiamond 函数
         [DllImport("diamond_cut_inspector.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
         private static extern IntPtr DetectDiamond(string jsonData);
@@ -89,12 +90,15 @@ namespace SparkClient.Model.Services
                 // 记录日志或处理异常
                 Console.WriteLine($"Error in CallParseJsonAndReturnActions: {ex.Message}");
                 Console.WriteLine($"Stack Trace: {ex.StackTrace}");
-                
+                Logger.Error($"Error in CallParseJsonAndReturnActions: {ex.Message}");
+                Logger.Error($"Stack Trace: {ex.StackTrace}");
                 // 如果有 InnerException,打印出来
                 if (ex.InnerException != null)
                 {
                     Console.WriteLine($"Inner Exception: {ex.InnerException.Message}");
                     Console.WriteLine($"Inner Stack Trace: {ex.InnerException.StackTrace}");
+                    Logger.Error($"Inner Exception: {ex.InnerException.Message}");
+                    Logger.Error($"Inner Stack Trace: {ex.InnerException.StackTrace}");
                 }
                 // 返回一个默认的 AlgorithmResultEntity 对象表示解析失败
                 MessageBox.Show(ex.Message);
diff --git a/Model/Services/SOCClientService.cs b/Model/Services/SOCClientService.cs
index f93ec58..7503573 100644
--- a/Model/Services/SOCClientService.cs
+++ b/Model/Services/SOCClientService.cs
@@ -7,6 +7,7 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
 using HandyControl.Tools.Extension;
+using log4net;
 using SparkClient.Model.Common;
 using SparkClient.Model.Entity.ApiEntity;
 using SparkClient.Model.Helper;
@@ -20,7 +21,9 @@ namespace SparkClient.Model.Services
     {
         // Log地址
         private const string LogFilePath = @"..\..\..\Resource\Document\log.txt";
-
+        
+        private static readonly ILog Logger = LogManager.GetLogger(typeof(SOCClientService));
+        
         /// <summary>
         /// 基础URL,用于构建完整的API请求地址。
         /// </summary>
@@ -115,6 +118,7 @@ namespace SparkClient.Model.Services
             {
                 // 记录日志或进行其他处理
                 Console.WriteLine($"Error in DoSoc: {ex.Message}");
+                Logger.Warn($"Error in DoSoc: {ex.Message}");
                 // 或者使用日志框架记录日志
                 // logger.LogError(ex, "Error in DoSoc method.");
                 return  new SocResultEntity { Status = StatusCodes.DeviceNotFound, Images = new List<string>() , DeviceId = ""};   
@@ -170,6 +174,7 @@ namespace SparkClient.Model.Services
                         default:
                             // 其他状态码,记录警告并继续
                             Console.WriteLine($"Unexpected status code: {status} for URL: {url}");
+                            Logger.Warn($"Unexpected status code: {status} for URL: {url}");
                             imageIndex++;
                             break;
                     }
@@ -178,6 +183,7 @@ namespace SparkClient.Model.Services
                 {
                     // 捕获HTTP请求异常并记录错误信息
                     Console.WriteLine($"HTTP request failed for URL: {url}, Exception: {ex.Message}");
+                    Logger.Error($"HTTP request failed for URL: {url}, Exception: {ex.Message}");
                     imageNames.Clear();
                     return imageNames;
                 }
@@ -185,6 +191,7 @@ namespace SparkClient.Model.Services
                 {
                     // 捕获其他异常并记录错误信息,结束循环
                     Console.WriteLine($"An unexpected error occurred for URL: {url}, Exception: {ex.Message}");
+                    Logger.Error($"An unexpected error occurred for URL: {url}, Exception: {ex.Message}");
                     imageNames.Clear();
                     return imageNames;
                 }
@@ -274,7 +281,7 @@ namespace SparkClient.Model.Services
                 // 日志记录
                 // logger.Error(e, "发生异常");
                 string logMessage = $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] 发生异常: {e.Message}{Environment.NewLine}";
-                File.AppendAllText(LogFilePath, logMessage);
+                Logger.Error(logMessage);
                 return new SocResultEntity { Status = StatusCodes.DeviceNotFound, Images = new List<string>() };                
             }
         }
diff --git a/ViewModel/BaseWindow/HomeWindowVM.cs b/ViewModel/BaseWindow/HomeWindowVM.cs
index e9953e0..979d09f 100644
--- a/ViewModel/BaseWindow/HomeWindowVM.cs
+++ b/ViewModel/BaseWindow/HomeWindowVM.cs
@@ -1,5 +1,6 @@
 using System.Windows;
 using System.Windows.Input;
+using log4net;
 using SparkClient.Model.Helper;
 using SparkClient.Model.Services;
 using SparkClient.ViewModel.Configuration;
@@ -10,7 +11,7 @@ namespace SparkClient.ViewModel.BaseWindow;
 
 public class HomeWindowVM : BaseViewModel
 {
-   
+    private static readonly ILog Logger = LogManager.GetLogger(typeof(HomeWindowVM));
    private SOCClientService _socClientService;
    public ICommand ShowHelperPageCommand { get; }
    
@@ -74,7 +75,7 @@ public class HomeWindowVM : BaseViewModel
        {
            // 记录日志
            LogError(e);
-           ShowMessage("错误: " + e.Message);
+           ShowMessage("Error: " + e.Message);
        }
    }
 
@@ -87,7 +88,8 @@ public class HomeWindowVM : BaseViewModel
    private void LogError(Exception e)
    {
        // 实现日志记录逻辑,例如写入文件或数据库
-       Console.WriteLine($"Error: {e.Message}\n{e.StackTrace}");
+       // Console.WriteLine($"Error: {e.Message}\n{e.StackTrace}");
+       Logger.Error($"Error: {e.Message}\n{e.StackTrace}");
    }