protected void ItemsGrid_RowCommand(object sender, GridViewCommandEventArgs e) { int itemId = AlwaysConvert.ToInt(e.CommandArgument); int index = _Order.Items.IndexOf(itemId); if (index > -1) { switch (e.CommandName) { case "DeleteItem": _Order.Items.RemoveAt(index); _Order.Save(true, false); BindGrids(); break; case "EditItem": OrderItem item = _Order.Items[index]; GiftCertMessage.Visible = item.GiftCertificates.Count > 0; EditItemDialogCaption.Text = "Edit " + item.Name; EditItemName.Text = item.Name; EditItemQuantity.Text = item.Quantity.ToString(); EditItemPrice.Text = item.Price.ToString("F2"); EditItemId.Value = itemId.ToString(); EditItemPopup.Show(); break; } } }
protected void SaveEditButton_Click(object sender, EventArgs e) { int itemId = AlwaysConvert.ToInt(EditItemId.Value); int index = _Order.Items.IndexOf(itemId); if (index > -1) { OrderItem orderItem = _Order.Items[index]; orderItem.Price = AlwaysConvert.ToDecimal(EditItemPrice.Text); orderItem.Quantity = AlwaysConvert.ToInt16(EditItemQuantity.Text); // Do not allow positive values for Discount/Credit or negative values for charge switch (orderItem.OrderItemTypeId) { case ((short)OrderItemType.Discount): case ((short)OrderItemType.Credit): if (orderItem.Price > 0) { orderItem.Price = Decimal.Negate((Decimal)orderItem.Price); } break; case ((short)OrderItemType.Charge): if (orderItem.Price < 0) { orderItem.Price = Decimal.Negate((Decimal)orderItem.Price); } break; default: break; } // UPDATE THE CALCULATED SUMMARY VALUES OF ORDER _Order.Save(true, false); BindGrids(); } EditItemPopup.Hide(); }