diff --git a/ViewModel/Grading/GradingLoadingVM.cs b/ViewModel/Grading/GradingLoadingVM.cs index 0b6899d..040a908 100644 --- a/ViewModel/Grading/GradingLoadingVM.cs +++ b/ViewModel/Grading/GradingLoadingVM.cs @@ -114,7 +114,8 @@ public class GradingLoadingVM : BaseViewModel,IDisposable } } #endregion - + + private bool _isCancel = false; public GradingLoadingVM(string diamnondType, string diamondCode) { _diamondCode = diamondCode; @@ -237,23 +238,34 @@ public class GradingLoadingVM : BaseViewModel,IDisposable await detectTask; if (detectTask.Status == TaskStatus.RanToCompletion) { - return ReslutGen(detectTask); + return await ReslutGen(detectTask); } await progress; - return ReslutGen(detectTask); + return await ReslutGen(detectTask); } catch(Exception ex) { - return -100; + Logger.Error(ex.Message); + if (_isCancel) + { + return -100; + } + else + { + return -10; + } + + } } - private int ReslutGen(Task detectTask) + private async Task ReslutGen(Task detectTask) { CompleteProgressQuicklyAsync(); - + if (detectTask.Result != null) + { switch (detectTask.Result.Status) { case StatusCodes.AlgorithmFailed: @@ -270,16 +282,22 @@ public class GradingLoadingVM : BaseViewModel,IDisposable return -1; } - Progress = 100; + Progress = (100.00); string strParam = JsonConvert.SerializeObject(detectTask.Result); AlgorithmResultEntity parameter = JsonConvert.DeserializeObject(strParam); - if (parameter == null) + if (parameter == null && _isCancel == false) { new MessageBox().Show(MultilingualHelper.getString("JsonParseFailure")); return -1; } + parameter.DiamondCode = _diamondCode; + parameter.Standard = getStandardName(); + parameter.Shape = _diamnondType.Split(" ")[0]; + parameter.CrownType = _diamnondType.Split(" ")[1]; + parameter.PavType = _diamnondType.Split(" ")[2]; + try { string parameterJson = JsonConvert.SerializeObject(parameter); @@ -300,7 +318,12 @@ public class GradingLoadingVM : BaseViewModel,IDisposable } Parameter = parameter; + if (_isCancel == true) return -100; return 0; + } + + + return -10; } private async Task CompleteProgressSlowlyAsync() @@ -356,6 +379,7 @@ public class GradingLoadingVM : BaseViewModel,IDisposable { WindowManager.mainViewModel.Content = WindowManager.PreviousVM(); _scanner?.Cancel(); + _isCancel = true; _progressCts.Cancel(); this.Dispose(); } @@ -421,6 +445,19 @@ public class GradingLoadingVM : BaseViewModel,IDisposable _disposed = true; } + private string getStandardName() + { + string sql = $"select\r\nRULE_NAME AS NAME,\r\nRULE_EN_NAME AS EN_NAME\r\nfrom\r\nsetting\r\nleft join rule\r\non setting.SETTING_P = rule.RULE_ID\r\nwhere\r\nsetting.SETTING_ID = 'RuleId'\r\n"; + DataTable dataTable = DataBaseHelper.ExecuteQuery(sql); + if (dataTable == null || dataTable.Rows.Count == 0) + { + return ""; + } + else + { + return dataTable.Rows[0][MultilingualHelper.getString("NameType")].ToString()??""; + } + } #region 图片播放处理 public void LoadImages(string folderPath)