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")); } } }