private async void bttnSubmit_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(_symbol)) { MessageBox.Show("The symbols is empty", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (cmbActions.SelectedItem == null || cmbOrderTypes.SelectedItem == null) { MessageBox.Show("Please select an action and order type", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string symbol = _symbol; int quantity = (!string.IsNullOrEmpty(txtQuantity.Text)) ? Convert.ToInt32(txtQuantity.Text.Trim()) : 0; EquityOrderActions action = (cmbActions.SelectedItem != null) ? (EquityOrderActions)cmbActions.SelectedItem : EquityOrderActions.buy; EquityOrderTypes orderType = (cmbOrderTypes.SelectedItem != null) ? (EquityOrderTypes)cmbOrderTypes.SelectedItem : EquityOrderTypes.market; EquityOrderExpires expire = (cmbExpires.SelectedItem != null) ? (EquityOrderExpires)cmbExpires.SelectedItem : EquityOrderExpires.day; EquityOrderSpecialInstructions spInst = (cmbSpInstructions.SelectedItem != null) ? (EquityOrderSpecialInstructions)cmbSpInstructions.SelectedItem : EquityOrderSpecialInstructions.none; float price = (!string.IsNullOrEmpty(txtPrice.Text)) ? Convert.ToSingle(txtPrice.Text.Trim()) : 0; float actPrice = (!string.IsNullOrEmpty(txtActPrice.Text)) ? Convert.ToSingle(txtActPrice.Text.Trim()) : 0; // Check if quantity is greater than 0 if (quantity == 0) { MessageBox.Show("Quantity must be greater than 0.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var newOrder = new EquityOrder(symbol, quantity, action, orderType); string orderDescription = string.Empty; string confirmMsg = string.Empty; switch (orderType) { case EquityOrderTypes.market: newOrder.Expire = expire; newOrder.SpInstruction = spInst; break; case EquityOrderTypes.limit: newOrder.Price = price; newOrder.Expire = expire; newOrder.SpInstruction = spInst; break; case EquityOrderTypes.stop_limit: newOrder.Price = price; newOrder.ActPrice = actPrice; newOrder.Expire = expire; break; case EquityOrderTypes.stop_market: newOrder.ActPrice = actPrice; newOrder.Expire = expire; break; case EquityOrderTypes.tstopdollar: float dollar = Convert.ToSingle(txtTsParam.Text.Trim()); newOrder.TsParam = dollar; newOrder.Expire = expire; break; case EquityOrderTypes.tstoppercent: int percent = Convert.ToInt32(txtTsParam.Text.Trim()); newOrder.TsParam = percent; newOrder.Expire = expire; break; } string orderString = EquityOrder.AccountIdString + newOrder.GetOrderString(); if (newOrder.Validate()) { Debug.Print(orderString); var result = MessageBox.Show(newOrder.ConfirmMessage, "Confirm Order", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button2); if (result == DialogResult.Yes) { EquityOrder.AddOrder(newOrder); EquityOrderResponse response = await EquityOrder.SubmitOrder(); if (!string.IsNullOrEmpty(response.Error)) { MessageBox.Show(response.Error, "Server Response", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { MessageBox.Show("The order submitted successfully.\r\nOrder Id: " + response.OrderId, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); ResetBasicControls(); ResetOptionalControls(); return; } } else { return; } } else { MessageBox.Show(orderString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }