/// <summary> /// /// </summary> /// <param name="response"></param> public static bool Finish(CardOrderSupplierResponse response) { try { byte continueSubmit = 0; if (response.OrderStatus != 2 && response.Method == 1) { var suppInfo = SupplierFactory.GetCacheModel(response.SupplierId); if (suppInfo != null) { if (!string.IsNullOrEmpty(suppInfo.AsynsRetCode)) { string[] arr = suppInfo.AsynsRetCode.Split(','); if (arr.Any(s => s == response.SuppErrorCode)) { continueSubmit = 1; } } } } int seq = 1, continueSupp = 0; string cacheKey = "ReceiveSuppResult" + response.SysOrderNo + response.SupplierId.ToString(); object flag = HttpRuntime.Cache[cacheKey]; if (flag == null) { DataRow resultRow = dal2.CallbackInsert(response.SysOrderNo , response.SupplierId , response.OrderStatus , response.SuppErrorCode , response.SuppErrorMsg , continueSubmit); if (resultRow != null) { seq = Convert.ToInt32(resultRow["seq"]); continueSupp = Convert.ToInt32(resultRow["continueSupp"]); } if (continueSubmit == 1 && continueSupp > 0) { } else { bool processFlag = (seq == 1) || ((seq > 1) && (response.OrderStatus == 2)); if (processFlag) { UpdateOrder(seq, response); } } HttpRuntime.Cache.Insert(cacheKey, response.OrderStatus, null, DateTime.Now.AddSeconds(10.0), TimeSpan.Zero); } if (seq == 1) { _notify.DoNotify(response.SysOrderNo); } Cache.WebCache.GetCacheService().RemoveObject(response.SysOrderNo); return(true); } catch (Exception exception) { viviLib.ExceptionHandling.ExceptionHandler.HandleException(exception); return(false); } }