示例#1
0
        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");
            }
        }
        private void AddExtra(ExtraDisponible extraDisp)
        {
            int         idAlimentoPedido = Convert.ToInt32(ViewState["AlimentoPedido"]);
            ExtraPedido extraPedido      = carrito.GetListExtra().FirstOrDefault(x => x.IdIngrediente == extraDisp.IdIngrediente && x.IdAlimentoPedido == idAlimentoPedido);

            if (extraPedido == null)
            {
                extraPedido = carrito.AddExtra(new ExtraPedido()
                {
                    IdAlimentoPedido = idAlimentoPedido,
                    IdIngrediente    = extraDisp.IdIngrediente,
                    ValorExtra       = extraDisp.Valor,
                    CantidadExtra    = 1
                });
            }
            else
            {
                extraPedido.CantidadExtra++;
                extraPedido.ValorExtra = extraPedido.CantidadExtra * extraDisp.Valor;
            }
        }