|
|
|
@ -1,25 +1,22 @@ |
|
|
|
|
using EncryptFileTool.Entity; |
|
|
|
|
using HandyControl.Controls; |
|
|
|
|
using log4net; |
|
|
|
|
using Newtonsoft.Json; |
|
|
|
|
using Newtonsoft.Json.Converters; |
|
|
|
|
using NPOI.SS.Formula.Functions; |
|
|
|
|
using SharpDX; |
|
|
|
|
using SparkClient.Model.Helper; |
|
|
|
|
using System; |
|
|
|
|
using SparkClient.ViewModel.Grading; |
|
|
|
|
using System.Data; |
|
|
|
|
using System.Drawing; |
|
|
|
|
using System.IO; |
|
|
|
|
using System.Linq.Expressions; |
|
|
|
|
using System.Windows; |
|
|
|
|
using System.Windows.Controls; |
|
|
|
|
using System.Windows.Controls.Primitives; |
|
|
|
|
using System.Windows.Data; |
|
|
|
|
using System.Windows.Input; |
|
|
|
|
using MessageBox = SparkClient.Views.Dialog.MessageBox; |
|
|
|
|
|
|
|
|
|
namespace SparkClient.ViewModel.Configuration; |
|
|
|
|
|
|
|
|
|
public class LevelConfigVM : BaseViewModel |
|
|
|
|
{ |
|
|
|
|
private static readonly ILog Logger = LogManager.GetLogger(typeof(GradingResultVM)); |
|
|
|
|
public ICommand ChangeShapeModelCommand { get; } |
|
|
|
|
public ICommand ChangeInstituteModelCommand { get; } |
|
|
|
|
public ICommand LoadLevelConfigCommand { get; } |
|
|
|
@ -108,149 +105,100 @@ public class LevelConfigVM : BaseViewModel |
|
|
|
|
|
|
|
|
|
private void setStandardList(DataTable gradeList, DataTable standardList) |
|
|
|
|
{ |
|
|
|
|
Style cellStyle = new Style(typeof(TextBlock)); |
|
|
|
|
Setter setSellStyle = new Setter(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Center); |
|
|
|
|
cellStyle.Setters.Add(setSellStyle); |
|
|
|
|
Setter setSellStyle1 = new Setter(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); |
|
|
|
|
cellStyle.Setters.Add(setSellStyle1); |
|
|
|
|
dataGrid.Columns.Clear(); |
|
|
|
|
if (gradeList != null) |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
StandardList = new DataTable(); |
|
|
|
|
List<DataColumn> columns = new List<DataColumn>(); |
|
|
|
|
foreach (DataRow columnInfo in gradeList.Rows) |
|
|
|
|
Style cellStyle = new Style(typeof(TextBlock)); |
|
|
|
|
Setter setSellStyle = new Setter(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Center); |
|
|
|
|
cellStyle.Setters.Add(setSellStyle); |
|
|
|
|
Setter setSellStyle1 = new Setter(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); |
|
|
|
|
cellStyle.Setters.Add(setSellStyle1); |
|
|
|
|
dataGrid.Columns.Clear(); |
|
|
|
|
if (gradeList != null) |
|
|
|
|
{ |
|
|
|
|
if ("1".Equals(columnInfo["GRADE_ORDER"].ToString())) |
|
|
|
|
StandardList = new DataTable(); |
|
|
|
|
List<DataColumn> columns = new List<DataColumn>(); |
|
|
|
|
foreach (DataRow columnInfo in gradeList.Rows) |
|
|
|
|
{ |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString())); |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString()+"_"+1)); |
|
|
|
|
//this.dataGrid.Columns.Add(new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString()),ElementStyle = cellStyle }); |
|
|
|
|
this.dataGrid.Columns.Add(GetDataGridColumn(columnInfo[GRADE_NAME].ToString()??"", columnInfo["GRADE_EN_NAME"].ToString() ?? "")); |
|
|
|
|
if ("1".Equals(columnInfo["GRADE_ORDER"].ToString())) |
|
|
|
|
{ |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString())); |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_" + 1)); |
|
|
|
|
//this.dataGrid.Columns.Add(new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString()),ElementStyle = cellStyle }); |
|
|
|
|
this.dataGrid.Columns.Add(GetDataGridColumn(columnInfo[GRADE_NAME].ToString() ?? "", columnInfo["GRADE_EN_NAME"].ToString() ?? "")); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
//this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN"), ElementStyle = cellStyle }); |
|
|
|
|
//this.dataGrid.Columns.Add(new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX"), ElementStyle = cellStyle }); |
|
|
|
|
this.dataGrid.Columns.Insert(0, GetDataGridColumn(columnInfo[GRADE_NAME].ToString() ?? "", (columnInfo["GRADE_EN_NAME"].ToString() ?? "") + "_MIN")); |
|
|
|
|
this.dataGrid.Columns.Add(GetDataGridColumn(columnInfo[GRADE_NAME].ToString() ?? "", (columnInfo["GRADE_EN_NAME"].ToString() ?? "") + "_MAX")); |
|
|
|
|
columns.Insert(0, new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN")); |
|
|
|
|
columns.Insert(0, new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN" + "_" + 1)); |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX")); |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX" + "_" + 1)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
columns.Insert(0, new DataColumn("title")); |
|
|
|
|
this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = grade_config_left_top, Binding = new Binding("title"), ElementStyle = cellStyle }); |
|
|
|
|
StandardList.Columns.AddRange(columns.ToArray()); |
|
|
|
|
// 以标准名分组表示每一行 |
|
|
|
|
if (standardList != null) |
|
|
|
|
{ |
|
|
|
|
//this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN"), ElementStyle = cellStyle }); |
|
|
|
|
//this.dataGrid.Columns.Add(new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX"), ElementStyle = cellStyle }); |
|
|
|
|
this.dataGrid.Columns.Insert(0, GetDataGridColumn(columnInfo[GRADE_NAME].ToString() ?? "", (columnInfo["GRADE_EN_NAME"].ToString() ?? "") + "_MIN")); |
|
|
|
|
this.dataGrid.Columns.Add(GetDataGridColumn(columnInfo[GRADE_NAME].ToString() ?? "", (columnInfo["GRADE_EN_NAME"].ToString() ?? "") + "_MAX")); |
|
|
|
|
columns.Insert(0, new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN")); |
|
|
|
|
columns.Insert(0, new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN" + "_" + 1)); |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX")); |
|
|
|
|
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX" + "_" + 1)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
columns.Insert(0, new DataColumn("title")); |
|
|
|
|
this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = grade_config_left_top, Binding = new Binding("title"), ElementStyle = cellStyle }); |
|
|
|
|
StandardList.Columns.AddRange(columns.ToArray()); |
|
|
|
|
// 以标准名分组表示每一行 |
|
|
|
|
if (standardList != null) |
|
|
|
|
{ |
|
|
|
|
var standardRules = standardList.AsEnumerable().GroupBy(r => r["RULE_ID"].ToString()); |
|
|
|
|
foreach (var ruleStandardList in standardRules) { |
|
|
|
|
var standards = ruleStandardList.AsEnumerable().GroupBy(r => r[STANDARD_NAME].ToString()); |
|
|
|
|
foreach (var standard in standards) |
|
|
|
|
var standardRules = standardList.AsEnumerable().GroupBy(r => r["RULE_ID"].ToString()); |
|
|
|
|
foreach (var ruleStandardList in standardRules) |
|
|
|
|
{ |
|
|
|
|
List<string> rowInfo = new List<string>(); |
|
|
|
|
foreach (DataRow columnInfo in gradeList.Rows) |
|
|
|
|
var standards = ruleStandardList.AsEnumerable().GroupBy(r => r[STANDARD_NAME].ToString()); |
|
|
|
|
foreach (var standard in standards) |
|
|
|
|
{ |
|
|
|
|
// 每一行单元格内数据 |
|
|
|
|
var row = standard.Where(s => s["GRADE_ORDER"].ToString() == columnInfo["GRADE_ORDER"].ToString()).FirstOrDefault(); |
|
|
|
|
string value = ""; |
|
|
|
|
if (row == null ) |
|
|
|
|
{ |
|
|
|
|
if ("1".Equals(columnInfo["GRADE_ORDER"].ToString())) |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add("-"); |
|
|
|
|
rowInfo.Add(""); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, "-"); |
|
|
|
|
rowInfo.Insert(0, ""); |
|
|
|
|
rowInfo.Add("-"); |
|
|
|
|
rowInfo.Add(""); |
|
|
|
|
} |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if ("1".Equals(row["GRADE_ORDER"].ToString())) |
|
|
|
|
{ |
|
|
|
|
string Min = row["STANDARD_MIN"].ToString(); |
|
|
|
|
string Max = row["STANDARD_MAX"].ToString(); |
|
|
|
|
if (!string.IsNullOrEmpty(Min) && !string.IsNullOrEmpty(Max)) |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MIN_PREFIX") + |
|
|
|
|
Min + row["UNIT"].ToString() + "-" |
|
|
|
|
+ Max + row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX") |
|
|
|
|
; |
|
|
|
|
} |
|
|
|
|
else if (!string.IsNullOrEmpty(Min)) |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MIN_PREFIX") + |
|
|
|
|
Min + row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX") |
|
|
|
|
; |
|
|
|
|
} |
|
|
|
|
else if (!string.IsNullOrEmpty(Max)) |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MIN_PREFIX") + |
|
|
|
|
Max + row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX") |
|
|
|
|
; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var arr = value.Split("\r\n", 2); |
|
|
|
|
rowInfo.Add(arr[0]); |
|
|
|
|
if (arr.Length > 1) { |
|
|
|
|
rowInfo.Add(arr[1]); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add(""); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
List<string> rowInfo = new List<string>(); |
|
|
|
|
foreach (DataRow columnInfo in gradeList.Rows) |
|
|
|
|
{ |
|
|
|
|
// 每一行单元格内数据 |
|
|
|
|
if (row["STANDARD_MIN"] == null || row["STANDARD_MIN"].ToString() == "") |
|
|
|
|
var row = standard.Where(s => s["GRADE_ORDER"].ToString() == columnInfo["GRADE_ORDER"].ToString()).FirstOrDefault(); |
|
|
|
|
string value = ""; |
|
|
|
|
if (row == null) |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MIN_PREFIX") |
|
|
|
|
+ row["MIN_NULL_REPALCE"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX"); |
|
|
|
|
var arr = value.Split("\r\n", 2); |
|
|
|
|
rowInfo.Insert(0, arr[0]); |
|
|
|
|
if (arr.Length > 1) |
|
|
|
|
if ("1".Equals(columnInfo["GRADE_ORDER"].ToString())) |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, arr[1]); |
|
|
|
|
rowInfo.Add("-"); |
|
|
|
|
rowInfo.Add(""); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, "-"); |
|
|
|
|
rowInfo.Insert(0, ""); |
|
|
|
|
rowInfo.Add("-"); |
|
|
|
|
rowInfo.Add(""); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
if ("1".Equals(row["GRADE_ORDER"].ToString())) |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MIN_PREFIX") |
|
|
|
|
+ row["STANDARD_MIN"].ToString() |
|
|
|
|
+ row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX"); |
|
|
|
|
var arr = value.Split("\r\n", 2); |
|
|
|
|
rowInfo.Insert(0, arr[0]); |
|
|
|
|
if (arr.Length > 1) |
|
|
|
|
string Min = row["STANDARD_MIN"].ToString(); |
|
|
|
|
string Max = row["STANDARD_MAX"].ToString(); |
|
|
|
|
if (!string.IsNullOrEmpty(Min) && !string.IsNullOrEmpty(Max)) |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, arr[1]); |
|
|
|
|
value = getFix(row, "MIN_PREFIX") + |
|
|
|
|
Min + row["UNIT"].ToString() + "-" |
|
|
|
|
+ Max + row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX") |
|
|
|
|
; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
else if (!string.IsNullOrEmpty(Min)) |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, ""); |
|
|
|
|
value = getFix(row, "MIN_PREFIX") + |
|
|
|
|
Min + row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX") |
|
|
|
|
; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (row["STANDARD_MAX"] == null || row["STANDARD_MAX"].ToString() == "") |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MAX_PREFIX") + |
|
|
|
|
row["MAX_NULL_REPALCE"].ToString() |
|
|
|
|
+ getFix(row, "MAX_SUFFIX"); |
|
|
|
|
else if (!string.IsNullOrEmpty(Max)) |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MIN_PREFIX") + |
|
|
|
|
Max + row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX") |
|
|
|
|
; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var arr = value.Split("\r\n", 2); |
|
|
|
|
rowInfo.Add(arr[0]); |
|
|
|
|
if (arr.Length > 1) |
|
|
|
@ -264,49 +212,111 @@ public class LevelConfigVM : BaseViewModel |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MAX_PREFIX") + |
|
|
|
|
row["STANDARD_MAX"].ToString() + row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MAX_SUFFIX"); |
|
|
|
|
var arr = value.Split("\r\n", 2); |
|
|
|
|
rowInfo.Add(arr[0]); |
|
|
|
|
if (arr.Length > 1) |
|
|
|
|
// 每一行单元格内数据 |
|
|
|
|
if (row["STANDARD_MIN"] == null || row["STANDARD_MIN"].ToString() == "") |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add(arr[1]); |
|
|
|
|
value = getFix(row, "MIN_PREFIX") |
|
|
|
|
+ row["MIN_NULL_REPALCE"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX"); |
|
|
|
|
var arr = value.Split("\r\n", 2); |
|
|
|
|
rowInfo.Insert(0, arr[0]); |
|
|
|
|
if (arr.Length > 1) |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, arr[1]); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, ""); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add(""); |
|
|
|
|
value = getFix(row, "MIN_PREFIX") |
|
|
|
|
+ row["STANDARD_MIN"].ToString() |
|
|
|
|
+ row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MIN_SUFFIX"); |
|
|
|
|
var arr = value.Split("\r\n", 2); |
|
|
|
|
rowInfo.Insert(0, arr[0]); |
|
|
|
|
if (arr.Length > 1) |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, arr[1]); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Insert(0, ""); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (row["STANDARD_MAX"] == null || row["STANDARD_MAX"].ToString() == "") |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MAX_PREFIX") + |
|
|
|
|
row["MAX_NULL_REPALCE"].ToString() |
|
|
|
|
+ getFix(row, "MAX_SUFFIX"); |
|
|
|
|
var arr = value.Split("\r\n", 2); |
|
|
|
|
rowInfo.Add(arr[0]); |
|
|
|
|
if (arr.Length > 1) |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add(arr[1]); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add(""); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
value = getFix(row, "MAX_PREFIX") + |
|
|
|
|
row["STANDARD_MAX"].ToString() + row["UNIT"].ToString() |
|
|
|
|
+ getFix(row, "MAX_SUFFIX"); |
|
|
|
|
var arr = value.Split("\r\n", 2); |
|
|
|
|
rowInfo.Add(arr[0]); |
|
|
|
|
if (arr.Length > 1) |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add(arr[1]); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
rowInfo.Add(""); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
string ruleId = ruleStandardList.Key; |
|
|
|
|
string prefix = ""; |
|
|
|
|
string ta = ruleId.Substring(ruleId.Length - 2); |
|
|
|
|
if (ruleId.StartsWith("GB")) |
|
|
|
|
{ |
|
|
|
|
if ("49".Equals(ta)) |
|
|
|
|
{ |
|
|
|
|
prefix = "[台宽比<" + ruleId.Substring(ruleId.Length - 2) + "] "; |
|
|
|
|
} |
|
|
|
|
else if ("71".Equals(ta)) |
|
|
|
|
{ |
|
|
|
|
prefix = "[台宽比>" + ruleId.Substring(ruleId.Length - 2) + "] "; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
string ruleId = ruleStandardList.Key; |
|
|
|
|
string prefix = ""; |
|
|
|
|
if (ruleId != null && !string.IsNullOrEmpty(ruleId)) |
|
|
|
|
{ |
|
|
|
|
prefix = "[台宽比=" + ruleId.Substring(ruleId.Length - 2) + "] "; |
|
|
|
|
string ta = ruleId.Substring(ruleId.Length - 2); |
|
|
|
|
if (ruleId.StartsWith("GB")) |
|
|
|
|
{ |
|
|
|
|
if ("49".Equals(ta)) |
|
|
|
|
{ |
|
|
|
|
prefix = "[台宽比<" + ruleId.Substring(ruleId.Length - 2) + "] "; |
|
|
|
|
} |
|
|
|
|
else if ("71".Equals(ta)) |
|
|
|
|
{ |
|
|
|
|
prefix = "[台宽比>" + ruleId.Substring(ruleId.Length - 2) + "] "; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
prefix = "[台宽比=" + ruleId.Substring(ruleId.Length - 2) + "] "; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
rowInfo.Insert(0, prefix + standard.Key); |
|
|
|
|
var showRow = StandardList.NewRow(); |
|
|
|
|
showRow.ItemArray = rowInfo.ToArray(); |
|
|
|
|
StandardList.Rows.Add(showRow); |
|
|
|
|
} |
|
|
|
|
rowInfo.Insert(0, prefix + standard.Key); |
|
|
|
|
var showRow = StandardList.NewRow(); |
|
|
|
|
showRow.ItemArray = rowInfo.ToArray(); |
|
|
|
|
StandardList.Rows.Add(showRow); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
catch (Exception ex) |
|
|
|
|
{ |
|
|
|
|
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); |
|
|
|
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
private DataGridColumn GetDataGridColumn(string Header,string Binding,int lineCount = 2) |
|
|
|
|
{ |
|
|
|
@ -449,7 +459,7 @@ public class LevelConfigVM : BaseViewModel |
|
|
|
|
} |
|
|
|
|
catch (Exception ex) { |
|
|
|
|
DataBaseHelper.rollback(); |
|
|
|
|
Console.WriteLine(ex.Message); |
|
|
|
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
|
|
|
Growl.Error(save_fail_message); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -468,68 +478,76 @@ public class LevelConfigVM : BaseViewModel |
|
|
|
|
/// <param name="param"></param> |
|
|
|
|
public void LoadLevelConfig(object param) |
|
|
|
|
{ |
|
|
|
|
InstitutesEnabled = false; |
|
|
|
|
ShapesEnabled = false; |
|
|
|
|
Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog(); |
|
|
|
|
openFileDialog.Filter = "Text files (*.enc)|*.enc|All files (*.*)|*.*"; |
|
|
|
|
jsonEntity = null; |
|
|
|
|
if (openFileDialog.ShowDialog() == true) |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
string filename = openFileDialog.FileName; |
|
|
|
|
string content = ""; |
|
|
|
|
if (File.Exists(filename)) |
|
|
|
|
InstitutesEnabled = false; |
|
|
|
|
ShapesEnabled = false; |
|
|
|
|
Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog(); |
|
|
|
|
openFileDialog.Filter = "Text files (*.enc)|*.enc|All files (*.*)|*.*"; |
|
|
|
|
jsonEntity = null; |
|
|
|
|
if (openFileDialog.ShowDialog() == true) |
|
|
|
|
{ |
|
|
|
|
content = AESHelper.DecryptFile(filename, "000000"); |
|
|
|
|
jsonEntity = JsonConvert.DeserializeObject<JsonEntity>(content); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
InstitutesEnabled = true; |
|
|
|
|
ShapesEnabled = true; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if (jsonEntity != null) |
|
|
|
|
{ |
|
|
|
|
// 形状列表重新生成 |
|
|
|
|
string shapeSql = $"SELECT * FROM SHAPE WHERE SHAPE_ID = '{jsonEntity.SHAPE_ID}';"; |
|
|
|
|
DataTable shapes = DataBaseHelper.ExecuteQuery(shapeSql); |
|
|
|
|
if (shapes == null || shapes.Rows.Count == 0) |
|
|
|
|
{ |
|
|
|
|
var row = Shapes.NewRow(); |
|
|
|
|
row["SHAPE_ID"] = jsonEntity.SHAPE_ID; |
|
|
|
|
row["SHAPE_NAME"] = jsonEntity.SHAPE_NAME; |
|
|
|
|
row["SHAPE_EN_NAME"] = jsonEntity.SHAPE_EN_NAME; |
|
|
|
|
Shapes.Rows.Add(row); |
|
|
|
|
ShapeId = jsonEntity.SHAPE_ID; |
|
|
|
|
string filename = openFileDialog.FileName; |
|
|
|
|
string content = ""; |
|
|
|
|
if (File.Exists(filename)) |
|
|
|
|
{ |
|
|
|
|
content = AESHelper.DecryptFile(filename, "000000"); |
|
|
|
|
jsonEntity = JsonConvert.DeserializeObject<JsonEntity>(content); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
ShapeId = shapes.Rows[0]["SHAPE_ID"].ToString()??""; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 机构列表重新生成 |
|
|
|
|
string instituteSql = $"SELECT * FROM RULE WHERE RULE_ID = '{jsonEntity.RULE_ID}';"; |
|
|
|
|
DataTable institute = DataBaseHelper.ExecuteQuery(instituteSql); |
|
|
|
|
if (institute == null || institute.Rows.Count == 0) |
|
|
|
|
{ |
|
|
|
|
var row = Institutes.NewRow(); |
|
|
|
|
row["RULE_ID"] = jsonEntity.RULE_ID; |
|
|
|
|
row["RULE_NAME"]=jsonEntity.RULE_NAME; |
|
|
|
|
row["RULE_EN_NAME"]= jsonEntity.RULE_EN_NAME; |
|
|
|
|
Institutes.Rows.Add(row); |
|
|
|
|
InstituteId = jsonEntity.RULE_ID; |
|
|
|
|
InstitutesEnabled = true; |
|
|
|
|
ShapesEnabled = true; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
if (jsonEntity != null) |
|
|
|
|
{ |
|
|
|
|
InstituteId = institute.Rows[0]["RULE_ID"].ToString()??""; |
|
|
|
|
// 形状列表重新生成 |
|
|
|
|
string shapeSql = $"SELECT * FROM SHAPE WHERE SHAPE_ID = '{jsonEntity.SHAPE_ID}';"; |
|
|
|
|
DataTable shapes = DataBaseHelper.ExecuteQuery(shapeSql); |
|
|
|
|
if (shapes == null || shapes.Rows.Count == 0) |
|
|
|
|
{ |
|
|
|
|
var row = Shapes.NewRow(); |
|
|
|
|
row["SHAPE_ID"] = jsonEntity.SHAPE_ID; |
|
|
|
|
row["SHAPE_NAME"] = jsonEntity.SHAPE_NAME; |
|
|
|
|
row["SHAPE_EN_NAME"] = jsonEntity.SHAPE_EN_NAME; |
|
|
|
|
Shapes.Rows.Add(row); |
|
|
|
|
ShapeId = jsonEntity.SHAPE_ID; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
ShapeId = shapes.Rows[0]["SHAPE_ID"].ToString() ?? ""; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 机构列表重新生成 |
|
|
|
|
string instituteSql = $"SELECT * FROM RULE WHERE RULE_ID = '{jsonEntity.RULE_ID}';"; |
|
|
|
|
DataTable institute = DataBaseHelper.ExecuteQuery(instituteSql); |
|
|
|
|
if (institute == null || institute.Rows.Count == 0) |
|
|
|
|
{ |
|
|
|
|
var row = Institutes.NewRow(); |
|
|
|
|
row["RULE_ID"] = jsonEntity.RULE_ID; |
|
|
|
|
row["RULE_NAME"] = jsonEntity.RULE_NAME; |
|
|
|
|
row["RULE_EN_NAME"] = jsonEntity.RULE_EN_NAME; |
|
|
|
|
Institutes.Rows.Add(row); |
|
|
|
|
InstituteId = jsonEntity.RULE_ID; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
InstituteId = institute.Rows[0]["RULE_ID"].ToString() ?? ""; |
|
|
|
|
} |
|
|
|
|
// 表格内容重新生成 |
|
|
|
|
string gradeInfosJson = JsonConvert.SerializeObject(jsonEntity.gradeInfos); |
|
|
|
|
DataTable gradeInfos = Common.JsonToDataTable(gradeInfosJson); |
|
|
|
|
string standardInfosJson = JsonConvert.SerializeObject(jsonEntity.standardInfos); |
|
|
|
|
DataTable standardInfos = Common.JsonToDataTable(standardInfosJson); |
|
|
|
|
setStandardList(gradeInfos, standardInfos); |
|
|
|
|
} |
|
|
|
|
// 表格内容重新生成 |
|
|
|
|
string gradeInfosJson = JsonConvert.SerializeObject(jsonEntity.gradeInfos); |
|
|
|
|
DataTable gradeInfos = Common.JsonToDataTable(gradeInfosJson); |
|
|
|
|
string standardInfosJson = JsonConvert.SerializeObject(jsonEntity.standardInfos); |
|
|
|
|
DataTable standardInfos = Common.JsonToDataTable(standardInfosJson); |
|
|
|
|
setStandardList(gradeInfos, standardInfos); |
|
|
|
|
} |
|
|
|
|
catch (Exception ex) |
|
|
|
|
{ |
|
|
|
|
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); |
|
|
|
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|