You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
283 lines
10 KiB
283 lines
10 KiB
using HandyControl.Controls; |
|
using log4net; |
|
using Newtonsoft.Json.Linq; |
|
using SparkClient.Model.Entity.Base; |
|
using SparkClient.Model.Helper; |
|
using SparkClient.ViewModel.BaseWindow; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.Data; |
|
using System.IO; |
|
using System.Linq; |
|
using System.Text; |
|
using System.Threading.Tasks; |
|
using System.Windows.Forms; |
|
using System.Windows.Input; |
|
|
|
namespace SparkClient.ViewModel.Configuration.SettingsPages |
|
{ |
|
public class SettingsVM : BaseViewModel |
|
{ |
|
private static readonly ILog Logger = LogManager.GetLogger(typeof(ModelColorSetPageVM)); |
|
public ICommand SelectFileCommand { get; } |
|
|
|
public string _languageId; |
|
public string LanguageId { get { return _languageId; } set { _languageId = value; OnPropertyChanged(nameof(LanguageId)); } } |
|
|
|
public bool _txtFileChecked; |
|
public bool TxtFileChecked { get { return _txtFileChecked; } set { _txtFileChecked = value; OnPropertyChanged(nameof(TxtFileChecked)); } } |
|
|
|
public bool _stlFileChecked; |
|
public bool StlFileChecked { get { return _stlFileChecked; } set { _stlFileChecked = value; OnPropertyChanged(nameof(StlFileChecked)); } } |
|
|
|
public bool _excelFileChecked; |
|
public bool ExcelFileChecked { get { return _excelFileChecked; } set { _excelFileChecked = value; OnPropertyChanged(nameof(ExcelFileChecked)); } } |
|
|
|
public bool _datFileChecked; |
|
public bool DatFileChecked { get { return _datFileChecked; } set { _datFileChecked = value; OnPropertyChanged(nameof(DatFileChecked)); } } |
|
|
|
public string _filePath; |
|
public string FilePath { get { return _filePath; } set { _filePath = value; OnPropertyChanged(nameof(FilePath)); } } |
|
|
|
public string _ruleId; |
|
public string RuleId { get { return _ruleId; } set { _ruleId = value; OnPropertyChanged(nameof(RuleId)); } } |
|
|
|
public DataTable _languages; |
|
public DataTable Languages { get { return _languages; } set { _languages = value; OnPropertyChanged(nameof(Languages)); } } |
|
|
|
public DataTable _rules; |
|
public DataTable Rules { get { return _rules; } set { _rules = value; OnPropertyChanged(nameof(Rules)); } } |
|
public SettingsVM() |
|
{ |
|
try { |
|
SelectFileCommand = new RelayCommand(SelectFile); |
|
InitSetting(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
} |
|
} |
|
|
|
private void InitSetting() |
|
{ |
|
try |
|
{ |
|
Languages = new DataTable(); |
|
Languages.Columns.Add("Key"); |
|
Languages.Columns.Add("Value"); |
|
Languages.Rows.Add("中文", "zh-cn"); |
|
Languages.Rows.Add("English", "en"); |
|
LanguageId = Settings.SelectValueById("LanguageId"); |
|
if (LanguageId.Length == 0) |
|
{ |
|
LanguageId = "zh-cn"; |
|
} |
|
bool.TryParse( Settings.SelectValueById("TxtFileChecked"), out bool TxtFileChecked); |
|
this.TxtFileChecked = TxtFileChecked; |
|
bool.TryParse(Settings.SelectValueById("StlFileChecked"), out bool StlFileChecked); |
|
this.StlFileChecked = StlFileChecked; |
|
bool.TryParse(Settings.SelectValueById("ExcelFileChecked"), out bool ExcelFileChecked); |
|
this.ExcelFileChecked = ExcelFileChecked; |
|
bool.TryParse(Settings.SelectValueById("DatFileChecked"), out bool DatFileChecked); |
|
this.DatFileChecked = DatFileChecked; |
|
FilePath = Settings.SelectValueById("FilePath"); |
|
RuleId = Settings.SelectValueById("RuleId"); |
|
selectRules(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
} |
|
} |
|
|
|
private void selectRules() |
|
{ |
|
try |
|
{ |
|
Rules = new DataTable(); |
|
Rules.Columns.Add("Key"); |
|
Rules.Columns.Add("Value"); |
|
string sql = $"SELECT * FROM RULE WHERE RULE_ID NOT LIKE '%_TA_%';"; |
|
DataTable db = DataBaseHelper.ExecuteQuery(sql); |
|
foreach (DataRow row in db.Rows) |
|
{ |
|
Rules.Rows.Add(row[MultilingualHelper.getString("RULE_NAME")].ToString(), row["RULE_ID"].ToString()); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
} |
|
//Rules.Rows.Add("IGI 2023", "IGI2023"); |
|
} |
|
public bool SaveUpdate(object param) |
|
{ |
|
try |
|
{ |
|
if (!Directory.Exists(FilePath)) |
|
{ |
|
Growl.Error(MultilingualHelper.getString("SavePathIsnotExists")); |
|
return false; |
|
} |
|
MultilingualHelper.setLanguage(_languageId); |
|
|
|
updateDataBase(); |
|
Growl.InfoGlobal(MultilingualHelper.getString("Save_successful_message")); |
|
return true; |
|
} |
|
catch (Exception ex) |
|
{ |
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
return false; |
|
} |
|
} |
|
private void updateDataBase() |
|
{ |
|
try |
|
{ |
|
// 语言设置登录 |
|
Settings LanguageData = new Settings() |
|
{ |
|
Key = "LanguageId", |
|
ItemName = "语言设置", |
|
Value = LanguageId, |
|
}; |
|
LanguageData.insert(); |
|
// 上传文件登录 |
|
Settings TxtFileCheckedData = new Settings() |
|
{ |
|
Key = "TxtFileChecked", |
|
ItemName = "上传文件 TXT文件", |
|
Value = TxtFileChecked.ToString(), |
|
}; |
|
TxtFileCheckedData.insert(); |
|
|
|
Settings StlFileCheckedData = new Settings() |
|
{ |
|
Key = "StlFileChecked", |
|
ItemName = "上传文件 STL文件", |
|
Value = StlFileChecked.ToString(), |
|
}; |
|
StlFileCheckedData.insert(); |
|
|
|
Settings ExcelFileCheckedData = new Settings() |
|
{ |
|
Key = "ExcelFileChecked", |
|
ItemName = "上传文件 Excel文件", |
|
Value = ExcelFileChecked.ToString(), |
|
}; |
|
ExcelFileCheckedData.insert(); |
|
|
|
Settings DatFileCheckedData = new Settings() |
|
{ |
|
Key = "DatFileChecked", |
|
ItemName = "上传文件 Dat文件", |
|
Value = DatFileChecked.ToString(), |
|
}; |
|
DatFileCheckedData.insert(); |
|
// 保存路径登录 |
|
Settings FilePathData = new Settings() |
|
{ |
|
Key = "FilePath", |
|
ItemName = "保存路径", |
|
Value = FilePath, |
|
}; |
|
FilePathData.insert(); |
|
// 定级标准登录 |
|
Settings RuleData = new Settings() |
|
{ |
|
Key = "RuleId", |
|
ItemName = "定级标准", |
|
Value = RuleId, |
|
}; |
|
RuleData.insert(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
} |
|
} |
|
public void SelectFile(object param) |
|
{ |
|
using (var folderBrowserDlg = new FolderBrowserDialog()) |
|
{ |
|
if (string.IsNullOrEmpty(FilePath)) |
|
{ |
|
folderBrowserDlg.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); |
|
} |
|
else |
|
{ |
|
folderBrowserDlg.SelectedPath = FilePath; |
|
} |
|
DialogResult result = folderBrowserDlg.ShowDialog(); |
|
|
|
if (result == DialogResult.OK) |
|
{ |
|
FilePath = folderBrowserDlg.SelectedPath; |
|
} |
|
} |
|
} |
|
} |
|
/// <summary> |
|
/// 设定表实体 |
|
/// </summary> |
|
public class Settings |
|
{ |
|
private static string TABLE_NAME = "SETTING"; |
|
|
|
[DbField("GUID")] |
|
public Guid GUID { get; set; } |
|
/// <summary> |
|
/// 项目名称 |
|
/// </summary> |
|
[DbField("SETTING_ID")] |
|
public required string Key { get; set; } |
|
/// <summary> |
|
/// key |
|
/// </summary> |
|
[DbField("SETTING_NAME")] |
|
public required string ItemName{ get; set; } |
|
/// <summary> |
|
/// value |
|
/// </summary> |
|
[DbField("SETTING_P")] |
|
public required string Value { get; set; } |
|
/// <summary> |
|
/// 设定表DB登录 |
|
/// </summary> |
|
/// <returns>更新数量</returns> |
|
public int insert() |
|
{ |
|
string sql = $"SELECT * FROM {TABLE_NAME} WHERE SETTING_ID = '{Key}';"; |
|
DataTable db = DataBaseHelper.ExecuteQuery(sql); |
|
if (db.Rows.Count > 0) |
|
{ |
|
string updateSql = $"UPDATE {TABLE_NAME} SET SETTING_P = '{this.Value}' WHERE SETTING_ID = '{Key}';"; |
|
return DataBaseHelper.ExecuteNonQuery(updateSql); |
|
} |
|
else |
|
{ |
|
string insertSql = $"INSERT INTO {TABLE_NAME} ('GUID','SETTING_ID','SETTING_NAME','SETTING_P') VALUES('{Guid.NewGuid().ToString()}','{Key}','{ItemName}','{Value}');"; |
|
return DataBaseHelper.ExecuteNonQuery(insertSql); |
|
} |
|
} |
|
/// <summary> |
|
/// 设定表值检索 |
|
/// </summary> |
|
/// <param name="Id"></param> |
|
/// <returns>value</returns> |
|
public static string SelectValueById(string Id) |
|
{ |
|
string sql = $"SELECT * FROM {TABLE_NAME} WHERE SETTING_ID = '{Id}';"; |
|
DataTable db = DataBaseHelper.ExecuteQuery(sql); |
|
if (db!=null && db.Rows.Count > 0) { |
|
return db.Rows[0]["SETTING_P"].ToString()??""; |
|
} |
|
else |
|
{ |
|
return ""; |
|
} |
|
} |
|
} |
|
}
|
|
|