|
|
|
|
@ -123,13 +123,42 @@ public class AlgorithmConfigVM : BaseViewModel |
|
|
|
|
DataTable dataTable = DataBaseHelper.ExecuteQuery(sql); |
|
|
|
|
if (dataTable != null && dataTable.Rows.Count >= 0) |
|
|
|
|
{ |
|
|
|
|
var jsonAlgorithm = JToken.Parse(_AlgorithmConfigJson); |
|
|
|
|
JToken jsonAlgorithm = JToken.Parse(_AlgorithmConfigJson); |
|
|
|
|
foreach (DataRow row in dataTable.Rows) |
|
|
|
|
{ |
|
|
|
|
//只对当前运行环境有效 |
|
|
|
|
if (Common.RunMode == int.Parse(row["Mode"].ToSafeString())) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
string spec = row["Spec"].ToSafeString(); |
|
|
|
|
string[] parameters = param.Split(" "); |
|
|
|
|
//匹配形状忽略,只有原型 |
|
|
|
|
//匹配规格 |
|
|
|
|
if (parameters.Last().Equals(spec.Split("-").Last())) |
|
|
|
|
{ |
|
|
|
|
string jsonKey = row["JsonKey"].ToSafeString(); |
|
|
|
|
string value = row["Value"].ToSafeString(); |
|
|
|
|
if (jsonKey.Contains(".")) |
|
|
|
|
{ |
|
|
|
|
var keys = jsonKey.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries); |
|
|
|
|
JToken currentNode = jsonAlgorithm; |
|
|
|
|
for (int i = 0; i < keys.Length - 1; i++) |
|
|
|
|
{ |
|
|
|
|
var currentKey = keys[i]; |
|
|
|
|
// 如果当前节点不存在或不是对象类型,则创建新对象 |
|
|
|
|
if (currentNode[currentKey] == null || currentNode[currentKey]?.Type != JTokenType.Object) |
|
|
|
|
{ |
|
|
|
|
currentNode[currentKey] = new JObject(); |
|
|
|
|
} |
|
|
|
|
currentNode = currentNode[currentKey]; |
|
|
|
|
} |
|
|
|
|
var finalKey = keys[keys.Length - 1]; |
|
|
|
|
currentNode[finalKey] = value; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
jsonAlgorithm[jsonKey] = value; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return jsonAlgorithm.ToString(); |
|
|
|
|
|