/// <summary> /// 从限价挂单列表中移除指定的限价挂单 /// </summary> /// <param name="orderData">要移除的限价挂单</param> private void RemovePendingOrderData(PendingOrderData orderData) { if (_dpObj.CheckAccess()) TradeHoldOrderInfo.TdHoldOrderList.Remove(orderData); else _dpObj.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new PendingOrderDataDelegate(RemovePendingOrderData), orderData); }
/// <summary> /// 添加一个限价挂单到限价挂单列表,并为其赋值它所属的商品信息类 /// </summary> /// <param name="orderData">要添加的限价挂单</param> private void AddPendingOrderData(PendingOrderData orderData) { ProductInformation productInfo = GetProductInfoByName(orderData.ProductName); orderData.OwnedProduct = productInfo; if (_dpObj.CheckAccess()) PendingOrderList.Add(orderData); else _dpObj.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new PendingOrderDataDelegate(AddPendingOrderData), orderData); }
/// <summary> /// 撤销限价挂单 /// </summary> /// <param name="loginID">登陆标识</param> /// <param name="userType">用户类型,0:交易用户,1:管理员,2:金商</param> /// <param name="orderData">要撤销的限价挂单</param> /// <returns>ErrType</returns> public ErrType RevocationPendingOrder(string loginID, int userType, PendingOrderData orderData) { try { DelHoldInfo delHoldInfo = TradeConverter.ToDelHoldInfo(loginID, userType, orderData); MarDelivery marDel = TradeService.DelHoldOrder(delHoldInfo); if (!marDel.Result) return new ErrType(ERR.SERVICE, marDel.Desc); return GeneralErr.Success; } catch (TimeoutException te) { FileLog.WriteLog("", Assembly.GetExecutingAssembly().GetName().Name, this.GetType().Name, new StackTrace().GetFrame(0).GetMethod().Name, te.Message); return new ErrType(ERR.EXEPTION, ErrorText.TimeoutException); } catch (Exception ex) { FileLog.WriteLog("", Assembly.GetExecutingAssembly().GetName().Name, this.GetType().Name, new StackTrace().GetFrame(0).GetMethod().Name, ex.Message); return new ErrType(ERR.EXEPTION, ErrorText.OperationError); } }
/// <summary> /// 撤销指定的限价挂单 /// </summary> /// <param name="selectedPendingOrder">要撤销的限价挂单</param> public void RevocationPendingOrder(PendingOrderData selectedPendingOrder) { string msg = string.Format("确定要撤销该挂单:{0}?", selectedPendingOrder.OrderID); MessageBoxResult mbResult = MessageBox.Show(msg, "请确认撤销操作", MessageBoxButton.YesNo, MessageBoxImage.Question); if (mbResult == MessageBoxResult.Yes) { int userType = ToUserType(_accType); ErrType err = _tradeService.RevocationPendingOrder(_loginID, userType, selectedPendingOrder); if (err == GeneralErr.Success) { RemovePendingOrderData(selectedPendingOrder); msg = string.Format("撤销挂单成功:{0}", selectedPendingOrder.OrderID); MessageBox.Show(msg, "提示", MessageBoxButton.OK, MessageBoxImage.Information); } else { msg = string.Format("撤销挂单失败:{0},原因:\r\n{1}", selectedPendingOrder.OrderID, err.ErrMsg); MessageBox.Show(msg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning); } } }
internal static DelHoldInfo ToDelHoldInfo( string loginID, int userType, PendingOrderData orderData ) { return new DelHoldInfo { CurrentTime = orderData.OwnedProduct.RealTimeTime, HoldOrderID = orderData.OrderID, LoginID = loginID, ReasonType = "1",//0为自动撤销,1为用户撤销 { 考虑是否增加 2 金商撤销,3,管理员撤销 } RtimePrices = orderData.RealTimePrice, TradeAccount = orderData.TradeAccount, //Todo:用户类型待处理 //UserType = userType, }; }