Exemplo n.º 1
0
        private static void OnEnableStopProfitChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            PendingOrderWindow win = d as PendingOrderWindow;

            if ((bool)e.NewValue)
            {
                ProductInformation p = win.CbProductName.SelectedItem as ProductInformation;
                if (p != null)
                {
                    win.StopProfit = p.OrderPrice;
                }
            }
            else
            {
                win.StopProfit = 0.00;
            }
        }
        /// <summary>
        /// 为指定的客户限价挂单
        /// </summary>
        /// <param name="clientAccount">指定的某个客户账户</param>
        public void PendingOrder(ClientAccount clientAccount)
        {
            PendingOrderWindow wnd = new PendingOrderWindow
            {
                Owner = Application.Current.MainWindow,
                DataContext = clientAccount,
                ProductList = ProductInfoes,
            };
            wnd.PendingOrder += (sender, args) =>
            {
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += (s, e) =>
                {
                    ValidationResult result = PendingOrderInfoValidation(args.NewOrderInfo, args.SelectedProduct, clientAccount);
                    if (!result.IsValid)
                    {
                        e.Result = new ErrType(ERR.VALIDATE_FAIL, result.ErrorContent.ToString());
                        return;
                    }

                    int userType = ToUserType(_accType);
                    e.Result = _tradeService.PendingOrder(_loginID, clientAccount.AccInfo.AccountName, userType, args.NewOrderInfo);
                };
                worker.RunWorkerCompleted += (s, e) =>
                {
                    ErrType err = e.Result as ErrType;
                    if (err != GeneralErr.Success)
                    {
                        MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning);
                        wnd.RevertWindowState();
                    }
                    else
                    {
                        wnd.Close();
                        MessageBox.Show("限价挂单操作成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                };
                worker.RunWorkerAsync();
            };
            wnd.ShowDialog();
        }