protected void OkButton_Click(object sender, EventArgs e) { // Looping through all the rows in the GridView foreach (GridViewRow row in SearchResultsGrid.Rows) { CheckBox checkbox = (CheckBox)row.FindControl("SelectCheckbox"); if ((checkbox != null) && (checkbox.Checked)) { // Retreive the DigitalGood int digitalGoodId = Convert.ToInt32(SearchResultsGrid.DataKeys[row.RowIndex].Value); DigitalGood dg = DigitalGoodDataSource.Load(digitalGoodId); // ( Bug 8262 ) CREATE A NEW ORDER ITEM FOR EACH DIGITAL GOOD OrderItem oi = new OrderItem(); oi.OrderId = _OrderId; oi.CustomFields["DigitalGoodIndicator"] = "1"; oi.Name = dg.Name; oi.OrderItemType = OrderItemType.Product; oi.Price = 0; oi.Quantity = 1; oi.Shippable = Shippable.No; oi.IsHidden = true; oi.Save(); OrderItemDigitalGood orderItemDigitalGood = new OrderItemDigitalGood(); orderItemDigitalGood.OrderItemId = oi.Id; orderItemDigitalGood.DigitalGoodId = digitalGoodId; orderItemDigitalGood.Name = dg.Name; orderItemDigitalGood.Save(); orderItemDigitalGood.Save(); } } Response.Redirect(string.Format("ViewDigitalGoods.aspx?OrderNumber={0}", _Order.OrderNumber)); }
protected void SaveKeyButton_Click(object sender, EventArgs e) { OrderItemDigitalGood oidg = OrderItemDigitalGoodDataSource.Load(AlwaysConvert.ToInt(this.OidgId.Value)); if (oidg != null) { // WE NEED TO UPDATE THE CURRENT LOADED LIST TO AVOID DISPLAY ISSUES int i = _Order.Items.IndexOf(oidg.OrderItem.Id); int j = _Order.Items[i].DigitalGoods.IndexOf(oidg.Id); OrderItemDigitalGood tempOidg = _Order.Items[i].DigitalGoods[j]; tempOidg.SetSerialKey(SerialKeyData.Text, true); tempOidg.Save(); OidgId.Value = String.Empty; BindDigitalGoodsGrid(); EditKeyPopup.Hide(); } }
protected void DigitalGoodsGrid_RowCommand(object sender, GridViewCommandEventArgs e) { int orderItemDigitalGoodId = AlwaysConvert.ToInt(e.CommandArgument); OrderItemDigitalGood oidg = FindDigitalGood(orderItemDigitalGoodId); ISerialKeyProvider asd = oidg.DigitalGood.GetSerialKeyProviderInstance(); if (oidg != null) { switch (e.CommandName) { case "Activate": oidg.Activate(); oidg.Save(); break; case "Deactivate": oidg.Deactivate(); oidg.Save(); break; case "GetKey": if (oidg.DigitalGood.GetSerialKeyProviderInstance() != null) { oidg.AcquireSerialKey(); oidg.Save(); } break; case "SetKey": this.SerialKeyData.Text = String.Empty; this.SaveKeyButton.Visible = true; this.DeleteKeyButton.Visible = false; this.OidgId.Value = oidg.Id.ToString(); this.EditKeyPopup.Show(); break; //case "ReturnKey": // if (oidg.DigitalGood.GetSerialKeyProviderInstance() != null) // { // oidg.ReturnSerialKey(); // oidg.Save(); // } // else // { // oidg.SerialKeyData = null; // oidg.Save(); // } // break; case "ViewKey": this.SerialKeyData.Text = oidg.SerialKeyData; this.SaveKeyButton.Visible = false; this.DeleteKeyButton.Visible = true; this.OidgId.Value = oidg.Id.ToString(); this.EditKeyPopup.Show(); break; case "Delete": // GET THE ORDERITEM THAT CONTAINS THE DIGITAL GOOD OrderItem oi = FindOrderItem(oidg.OrderItemId); if (oi != null) { // DETERMINE IF THE ORDERITEM IS A PLACEHOLDER FOR DIGITAL GOOD if (oi.CustomFields.TryGetValue("DigitalGoodIndicator") == "1") { // THE ORDERITEM IS A PLACEHOLDER, REMOVE THE ITEM (AND DIGITAL GOOD) int oiIndex = _Order.Items.IndexOf(oi.Id); if (oiIndex > -1) { _Order.Items.DeleteAt(oiIndex); } } else { // NOT A PLACEHOLDER, DELETE THE DIGITAL GOOD ONLY int dgIndex = oi.DigitalGoods.IndexOf(oidg.Id); if (dgIndex > -1) { oi.DigitalGoods.DeleteAt(dgIndex); } } } break; } BindDigitalGoodsGrid(); } }