Example #1
0
        public ActionResult CrearProducto(ProductoModel unProducto)
        {
            //YA controlamos que el usuario este logueado en el GET

            //Si el modelo no es valido retornamos la vista con los errores
            if (!ModelState.IsValid)
            {
                //Retornamos el modelo con sus errores
                return(View(unProducto));
            }
            else //Si el modelo ES VALIDO
            {
                //Nos anticipamos a un posible error en DB
                try
                {
                    //Buscamos el producto por su ID, si hay alguno con la misma id mostramos error
                    ProductoDTO buscando = miLogica.BuscarProducto(unProducto.Id);
                    if (buscando == null)
                    {
                        //Creamos un ProductoDTO para pasarlo a la logica
                        ProductoDTO nuevoProducto = new ProductoDTO()
                        {
                            Id    = unProducto.Id,
                            Marca = unProducto.Marca,
                            //Ya controlamos que la session no sea nula entonces:
                            NickUsuario = HerramientasM.IdLogueado((UsuarioModel)Session["Logueado"]),
                            Nombre      = unProducto.Nombre,
                            Precio      = unProducto.Precio,
                            Habilitado  = true
                        };

                        //Enviamos el producto a la logica
                        miLogica.CrearProducto(nuevoProducto);

                        //Redirigimos al Action para que se reseteen los campos del formulario
                        return(RedirectToAction("CrearProducto"));
                    }
                    else //Si el producto con esa id esta en el sistema
                    {
                        //Creamos el mensaje de error
                        ModelState.AddModelError("Id", $"Ya existe un producto con id: {unProducto.Id}");
                        //Devolvemos la vista
                        return(View(unProducto));
                    }
                }
                catch (Exception unError)
                {
                    //Podriamos guardar el error en base de datos
                    //Retornamos la vista de error
                    return(View("Error"));
                }
            }
        }