예제 #1
0
        public ActionResult Create(ProductoEditViewModel productoVm)
        {
            if (!ModelState.IsValid)
            {
                productoVm.Categorias  = CombosHelper.GetCategorias();
                productoVm.Proveedores = CombosHelper.GetProveedores();

                return(View(productoVm));
            }

            var producto = Mapper.Map <ProductoEditViewModel, Producto>(productoVm);

            if (!_dbContext.Productos.Any(ct => ct.NombreProducto == producto.NombreProducto &&
                                          ct.CategoriaId == producto.CategoriaId))
            {
                using (var tran = _dbContext.Database.BeginTransaction())
                {
                    try
                    {
                        var folder = "~/Content/Images/Productos/";
                        var file   = "";
                        _dbContext.Productos.Add(producto);
                        _dbContext.SaveChanges();
                        if (productoVm.FotoFile != null)
                        {
                            file = $"{producto.ProductoId}.jpg";
                            var response = FileHelper.UploadPhoto(productoVm.FotoFile, folder, file);
                            if (!response)
                            {
                                file = "SinImagenDisponible.jpg";
                            }
                        }
                        else
                        {
                            file = "SinImagenDisponible.jpg";
                        }

                        producto.Foto = $"{folder}{file}";
                        _dbContext.Entry(producto).State = EntityState.Modified;
                        _dbContext.SaveChanges();
                        tran.Commit();
                        TempData["Msg"] = "Registro agregado";
                        return(RedirectToAction("Index"));
                    }
                    catch (Exception e)
                    {
                        productoVm.Categorias  = CombosHelper.GetCategorias();
                        productoVm.Proveedores = CombosHelper.GetProveedores();

                        ModelState.AddModelError(string.Empty, e.Message);
                        return(View(productoVm));
                    }
                }
            }
            productoVm.Categorias  = CombosHelper.GetCategorias();
            productoVm.Proveedores = CombosHelper.GetProveedores();

            ModelState.AddModelError(string.Empty, "Registro repetido...");
            return(View(productoVm));
        }
예제 #2
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ProductoEditDto       productoEditDto = _servicio.GetProductoPorId(id);
            ProductoEditViewModel productoVm      = _mapper.Map <ProductoEditViewModel>(productoEditDto);

            productoVm.TipoProducto = _mapper
                                      .Map <List <TipoDeProductoListViewModel> >(_serviciosTipoProducto.GetLista());
            productoVm.Marca = _mapper
                               .Map <List <MarcaListViewModel> >(_servicioMarca.GetLista());
            if (productoVm.Imagen == null)
            {
                productoVm.Imagen = $"ImagenNoDisponible.jpg";
            }
            else
            {
                productoVm.Imagen = $"{productoVm.Imagen}";
            }

            return(View(productoVm));
        }
예제 #3
0
        public ActionResult Edit(ProductoEditViewModel productoVm)
        {
            if (!ModelState.IsValid)
            {
                productoVm.Imagen = $"ImagenNoDisponible.jpg";

                productoVm.TipoProducto = _mapper
                                          .Map <List <TipoDeProductoListViewModel> >(_serviciosTipoProducto.GetLista());
                productoVm.Marca = _mapper
                                   .Map <List <MarcaListViewModel> >(_servicioMarca.GetLista());
                return(View(productoVm));
            }

            ProductoEditDto productoDto = _mapper.Map <ProductoEditDto>(productoVm);

            if (_servicio.Existe(productoDto))
            {
                ModelState.AddModelError(string.Empty, @"Producto existente...");
                productoVm.Imagen = $"ImagenNoDisponible.jpg";

                productoVm.TipoProducto = _mapper
                                          .Map <List <TipoDeProductoListViewModel> >(_serviciosTipoProducto.GetLista());
                productoVm.Marca = _mapper
                                   .Map <List <MarcaListViewModel> >(_servicioMarca.GetLista());
                return(View(productoVm));
            }

            try
            {
                if (productoVm.ImagenFile != null)
                {
                    productoDto.Imagen = $"{productoVm.ImagenFile.FileName}";
                }

                _servicio.Guardar(productoDto);

                if (productoVm.ImagenFile != null)
                {
                    var file     = $"{productoVm.ImagenFile.FileName}";
                    var response = FileHelper.UploadPhoto(productoVm.ImagenFile, folder, file);
                }

                TempData["Msg"] = "Producto editado...";
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, e.Message);
                productoVm.Imagen = $"{folder}ImagenNoDisponible.jpg";

                productoVm.TipoProducto = _mapper
                                          .Map <List <TipoDeProductoListViewModel> >(_serviciosTipoProducto.GetLista());
                productoVm.Marca = _mapper
                                   .Map <List <MarcaListViewModel> >(_servicioMarca.GetLista());
                return(View(productoVm));
            }
        }
예제 #4
0
        // GET: Productos/Create
        public ActionResult Create()
        {
            var productoVm = new ProductoEditViewModel
            {
                Categorias  = CombosHelper.GetCategorias(),
                Proveedores = CombosHelper.GetProveedores()
            };

            return(View(productoVm));
        }
예제 #5
0
        public ActionResult Create()
        {
            ProductoEditViewModel productoVm = new ProductoEditViewModel
            {
                Activo        = true,
                Imagen        = $"SinImagenDisponible.jpg",
                TipoProductos = _mapper
                                .Map <List <TipoProductoListViewModel> >(_serviciosTipoProducto.GetLista())
            };

            return(View(productoVm));
        }
예제 #6
0
        public ActionResult Create()
        {
            ProductoEditViewModel productoVm = new ProductoEditViewModel
            {
                Imagen       = $"ImagenNoDisponible.jpg",
                TipoProducto = _mapper
                               .Map <List <TipoDeProductoListViewModel> >(_serviciosTipoProducto.GetLista()),
                Marca = _mapper
                        .Map <List <MarcaListViewModel> >(_servicioMarca.GetLista())
            };

            return(View(productoVm));
        }
예제 #7
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var producto = _dbContext.Productos
                           .SingleOrDefault(ct => ct.ProductoId == id);

            if (producto == null)
            {
                return(HttpNotFound());
            }

            ProductoEditViewModel productoVm = Mapper
                                               .Map <Producto, ProductoEditViewModel>(producto);

            productoVm.Categorias  = CombosHelper.GetCategorias();
            productoVm.Proveedores = CombosHelper.GetProveedores();

            return(View(productoVm));
        }
예제 #8
0
        public ActionResult Edit(ProductoEditViewModel productoVm)
        {
            if (!ModelState.IsValid)
            {
                return(View(productoVm));
            }

            var producto = Mapper.Map <ProductoEditViewModel, Producto>(productoVm);

            productoVm.Categorias  = CombosHelper.GetCategorias();
            productoVm.Proveedores = CombosHelper.GetProveedores();

            try
            {
                if (_dbContext.Productos.Any(ct => ct.NombreProducto == producto.NombreProducto &&
                                             ct.ProductoId != producto.ProductoId))
                {
                    productoVm.Categorias  = CombosHelper.GetCategorias();
                    productoVm.Proveedores = CombosHelper.GetProveedores();

                    ModelState.AddModelError(string.Empty, "Registro repetido");
                    return(View(productoVm));
                }
                _dbContext.Entry(producto).State = EntityState.Modified;
                _dbContext.SaveChanges();
                TempData["Msg"] = "Registro editado";
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                productoVm.Categorias  = CombosHelper.GetCategorias();
                productoVm.Proveedores = CombosHelper.GetProveedores();

                ModelState.AddModelError(string.Empty, "Error inesperado al intentar editar un registro");
                return(View(productoVm));
            }
        }