public ActionResult Add_producto(long codprod, int cantidad)
        {
            //1. creo una lista de carrito y le asigno la lista de carrito en sesion
            List <Carrito> carrito = (List <Carrito>)Session["carrito"];

            //2.busco en la lista si ya existe un item carrito con el codigo de producto del parametro
            Carrito c = carrito.Where(x => x.codigo == codprod).FirstOrDefault();

            if (c != null)
            {
                //3.si existe, aumentar la cantidad
                c.cantidad += cantidad;
            }
            else
            {
                //3.si no existe, obtengo el producto que tenga como codigo el parametro codprod
                BeanProducto p = ws.pro_listar("1", "0", "").Where(x => x.CODPROD == codprod.ToString()).FirstOrDefault();

                //4. creo una nuevo objeto carrito y le paso informacion del producto obtenido y la cantidad
                c = new Carrito
                {
                    codigo      = long.Parse(p.CODPROD),
                    descripcion = p.DESCPROD,
                    precio      = decimal.Parse(p.PREPROD),
                    cantidad    = cantidad
                };
                //5. añado el objeto carrito a la lista de sesion carrito
                carrito.Add(c);
            }

            //Se redirecciona a la pantalla de confirmacion
            return(RedirectToAction("Index", "Confirmacion", new { mensaje = "El producto fue añadido al carrito." }));
        }
        public ActionResult Editar(string codprod)
        {
            BeanProducto p      = ws.pro_listar("1", "0", "").Where(x => x.CODPROD == codprod).FirstOrDefault();
            SelectList   cboCat = new SelectList(ws.cat_listar(), "CODCAT", "DESCCAT");

            ViewBag.cat = cboCat;
            return(View(p));
        }
        public ActionResult Registrar()
        {
            SelectList cboCat = new SelectList(ws.cat_listar(), "CODCAT", "DESCCAT");

            ViewBag.cat = cboCat;
            BeanProducto p = new BeanProducto();

            return(View(p));
        }
        public ActionResult Registrar(BeanProducto p, HttpPostedFileBase archivo)
        {
            string     msg;
            SelectList cboCat = new SelectList(ws.cat_listar(), "CODCAT", "DESCCAT", p.CATPROD);

            if (archivo == null)
            {
                p.FOTOPROD = "-";
                msg        = ws.pro_registrar(p);
            }
            else
            {
                bool q = Path.GetExtension(archivo.FileName) == ".jpg";
                bool r = Path.GetExtension(archivo.FileName) == ".png";
                bool s = Path.GetExtension(archivo.FileName) == ".gif";

                //si el archivo no es jpg, png o gif
                if (!q && !r && !s)
                {
                    ViewBag.ext_invalida = "Debe seleccionar una imagen en formato jpg,png o gif";
                    ViewBag.cat          = cboCat;
                    return(View(p));
                }

                try
                {
                    string foto = "prod" + ws.pro_autogenera() + Path.GetExtension(archivo.FileName);
                    archivo.SaveAs(Server.MapPath("~/imagenes/productos/" + foto));

                    p.FOTOPROD = foto;
                    msg        = ws.pro_registrar(p);
                }
                catch (Exception e)
                {
                    msg = "Hubo un error al cargar el archivo: " + e.Message;
                }
            }
            ViewBag.cat = cboCat;
            return(RedirectToAction("Index", "Confirmacion", new { mensaje = msg }));
        }