コード例 #1
0
        protected void Buy_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }

            if ((string)ViewState["type"] == "bond")
            {
                string code            = (string)ViewState["code"];
                string amount          = txtAmount.Text.Trim();
                string referenceNumber = myExternalFunctions.submitBondBuyOrder(code, amount);
                if (referenceNumber == null)
                {
                    // order failed to submit
                    // internal error
                    Response.Redirect("Result.aspx?result=Oops..An internal error occured");
                    return;
                }
                string accountNumber = myHKeInvestCode.getUserAccountNumber(Session, Context.User.Identity.GetUserName());
                string name          = ((string)ViewState["name"]).Trim();
                myHKeInvestCode.createNewOrder(accountNumber, referenceNumber, name, code);
                myHKeInvestCode.createBondBuyOrder(referenceNumber, amount);
            }
            else if ((string)ViewState["type"] == "stock")
            {
                string code       = (string)ViewState["code"];
                string shares     = txtQuantity.Text.Trim();
                string orderType  = ddlStockType.SelectedValue;
                string expiryDate = ExpiryDate.Text.Trim();
                string allOrNone  = AllOrNone.Checked ? "Y" : "N";
                string highPrice  = txtHighPrice.Text.Trim();
                string stopPrice  = txtStopPrice.Text.Trim();

                if (orderType == "stop limit" && !validRelation(highPrice, stopPrice))
                {
                    // HACK: manually set the validator's IsValid property
                    // without calling Validate() method to set Page.IsValid property
                    return;
                }

                string referenceNumber = myExternalFunctions.submitStockBuyOrder(code, shares, orderType, expiryDate, allOrNone, highPrice, stopPrice);
                if (referenceNumber == null)
                {
                    // order failed to submit
                    // internal error
                    Response.Redirect("Result.aspx?result=Oops..An internal error occured");
                    return;
                }
                string accountNumber = myHKeInvestCode.getUserAccountNumber(Session, Context.User.Identity.GetUserName());
                string name          = ((string)ViewState["name"]).Trim();
                myHKeInvestCode.createNewOrder(accountNumber, referenceNumber, name, code);
                myHKeInvestCode.createStockBuyOrder(referenceNumber, shares, orderType, expiryDate, allOrNone, highPrice, stopPrice);
            }
            else if ((string)ViewState["type"] == "unit trust")
            {
                string code            = (string)ViewState["code"];
                string amount          = txtAmount.Text.Trim();
                string referenceNumber = myExternalFunctions.submitUnitTrustBuyOrder(code, amount);
                if (referenceNumber == null)
                {
                    // order failed to submit
                    // internal error
                    Response.Redirect("Result.aspx?result=Oops..An internal error occured");
                    return;
                }
                string accountNumber = myHKeInvestCode.getUserAccountNumber(Session, Context.User.Identity.GetUserName());
                string name          = ((string)ViewState["name"]).Trim();
                myHKeInvestCode.createNewOrder(accountNumber, referenceNumber, name, code);
                myHKeInvestCode.createUnitTrustBuyOrder(referenceNumber, amount);
            }

            Response.Redirect("Result.aspx?result=Buy Order Successfully Placed");
        }