public IActionResult Upsert(Categoria categoria)
 {
     if (ModelState.IsValid)
     {
         if (categoria.Id == 0)
         {
             _unidadTrabajo.Categoria.Agregar(categoria);
         }
         else
         {
             _unidadTrabajo.Categoria.Actualizar(categoria);
         }
         _unidadTrabajo.Guardar();
         return(RedirectToAction(nameof(Index)));
     }
     return(View(categoria));
 }
Ejemplo n.º 2
0
        public IActionResult Upsert(ProductoVM productoVM)
        {
            if (ModelState.IsValid)

            {
                //Cargar Imagen
                string webRootPath = _hostEnvironment.WebRootPath;
                var    files       = HttpContext.Request.Form.Files;
                if (files.Count > 0)
                {
                    string filename  = Guid.NewGuid().ToString();
                    var    uploads   = Path.Combine(webRootPath, @"Imagenes/productos");
                    var    extension = Path.GetExtension(files[0].FileName);
                    if (productoVM.Producto.ImagenUrl != null)
                    {
                        //Esto es para editar,necesitamos borrar la imagen anterior
                        var imagenPath = Path.Combine(webRootPath, productoVM.Producto.ImagenUrl.TrimStart('\\'));

                        if (System.IO.File.Exists(imagenPath))
                        {
                            ;
                        }
                        {
                            System.IO.File.Delete(imagenPath);
                        }
                    }
                    using (var filesStreams = new FileStream(Path.Combine(uploads, filename + extension), FileMode.Create))
                    {
                        files[0].CopyTo(filesStreams);
                    }
                    productoVM.Producto.ImagenUrl = @"\Imagenes\productos\" + filename + extension;
                }
                else
                {
                    //si en el update el usuario no cambia la imagen
                    if (productoVM.Producto.Id != 0)
                    {
                        Producto productoDB = _unidadTrabajo.Producto.Obtener(productoVM.Producto.Id);
                        productoVM.Producto.ImagenUrl = productoDB.ImagenUrl;
                    }
                }

                if (productoVM.Producto.Id == 0)
                {
                    _unidadTrabajo.Producto.Agregar(productoVM.Producto);
                }
                else
                {
                    _unidadTrabajo.Producto.Actualizar(productoVM.Producto);
                }
                _unidadTrabajo.Guardar();
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                productoVM.CategoriaLista = _unidadTrabajo.Categoria.ObtenerTodos().Select(c => new SelectListItem
                {
                    Text  = c.Nombre,
                    Value = c.Id.ToString()
                });
                productoVM.MarcaLista = _unidadTrabajo.Marca.ObtenerTodos().Select(c => new SelectListItem
                {
                    Text  = c.Nombre,
                    Value = c.Id.ToString()
                });

                productoVM.PadreLista = _unidadTrabajo.Producto.ObtenerTodos().Select(p => new SelectListItem
                {
                    Text  = p.Descripcion,
                    Value = p.Id.ToString()
                });

                if (productoVM.Producto.Id != 0)
                {
                    productoVM.Producto = _unidadTrabajo.Producto.Obtener(productoVM.Producto.Id);
                }
            }
            return(View(productoVM.Producto));
        }