protected void GridCarrito_RowDataBound(object sender, GridViewRowEventArgs e) { try { if (e.Row.RowType == DataControlRowType.DataRow) { GridViewRow row = e.Row; GridView gridExtras = (GridView)row.FindControl("GridExtrasAgregados"); Label lblIdElementoPedido = (Label)row.FindControl("lblCodigoElementoPedido"); Label lblTipoElemento = (Label)row.FindControl("lblTipoElemento"); Label lblIdAlimento = (Label)row.FindControl("lblCodigo"); LinkButton buttonExtra = (LinkButton)row.FindControl("ButtonExtras"); Image image = (Image)row.FindControl("imageAlimento"); if (lblTipoElemento.Text == "Alimento") { Alimento alimento = aDAL.Find(Convert.ToInt32(lblIdAlimento.Text)); image.ImageUrl = $"/Fotos/Productos/{alimento.Foto}"; gridExtras.DataSource = carrito.GetListExtra().Where(x => x.IdAlimentoPedido == Convert.ToInt32(lblIdElementoPedido.Text)); gridExtras.DataBind(); } else { buttonExtra.Enabled = false; } } } catch (Exception ex) { UserMessage(ex.Message, "danger"); } }
protected void btnAgregarExtra_Click(object sender, EventArgs e) { try { int idIngrediente = Convert.ToInt32(cboModalIngrediente.SelectedValue); int idAlimentoPedido = Convert.ToInt32(txtIdAlimentoPedido.Text); ValidateExtraFields(idIngrediente, idAlimentoPedido); cboModalIngrediente.Items.FindByValue(idIngrediente.ToString()).Enabled = false; //Se bloquea la opción de elegir el mismo ingrediente ExtraPedido extra = new ExtraPedido() { IdIngrediente = idIngrediente, CantidadExtra = Convert.ToInt32(txtCantidadPorcion.Text), IdAlimentoPedido = idAlimentoPedido, ValorExtra = string.IsNullOrEmpty(txtModalValorExtra.Text) ? (int?)null : Convert.ToInt32(txtModalValorExtra.Text) }; List <ExtraPedido> listaExtras = carrito.GetListExtra().Where(x => x.IdAlimentoPedido == idAlimentoPedido).ToList(); ExtraPedido item = listaExtras.FirstOrDefault(x => x.IdIngrediente == idIngrediente); if (item != null) { int index = carrito.GetListExtra().IndexOf(item); carrito.UpdateExtra(index, extra); } else { carrito.AddExtra(extra); } CargarGridExtras(idAlimentoPedido); LimpiarModal(); SwitchTextBox(true); } catch (Exception ex) { UserMessageExtra(ex.Message, "danger"); } }