Example #1
0
        public async Task <IActionResult> Update(ArticuloViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(StatusCode(400, "Modelo no válido."));
                }
                ArticuloEntity articuloEntity = await _contextInventario.Articulo.FindAsync(model.Sku_ID);

                if (articuloEntity == null)
                {
                    return(StatusCode(404, "Artículo no encontrado."));
                }
                articuloEntity.Sku_ID          = model.Sku_ID;
                articuloEntity.Sku_NumeroSerie = model.Sku_NumeroSerie;
                articuloEntity.Sku_Descripcion = model.Sku_Descripcion;
                articuloEntity.Sku_Cantidad    = model.Sku_Cantidad;
                articuloEntity.Sku_Cat_ID      = model.Sku_Cat_ID;
                articuloEntity.Sku_Sub_Cat_ID  = model.Sku_Sub_Cat_ID;
                articuloEntity.Sku_Latitud     = model.Sku_Latitud;
                articuloEntity.Sku_Longitud    = model.Sku_Longitud;

                _contextInventario.Articulo.Update(articuloEntity);
                await _contextInventario.SaveChangesAsync();

                return(StatusCode(200));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, "Ocurrio un error al actualizar los datos del artículo. " + ex.Message));
            }
        }
Example #2
0
        public async Task <IActionResult> Create(ArticuloViewModel model)
        {
            ArticuloEntity articuloEntity = new ArticuloEntity();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(StatusCode(400, "Modelo no válido."));
                }

                articuloEntity.Sku_NumeroSerie = model.Sku_NumeroSerie;
                articuloEntity.Sku_Codigo      = model.Sku_Codigo;
                articuloEntity.Sku_Descripcion = model.Sku_Descripcion;
                articuloEntity.Sku_Cantidad    = model.Sku_Cantidad;
                articuloEntity.Sku_Cat_ID      = model.Sku_Cat_ID;
                articuloEntity.Sku_Sub_Cat_ID  = model.Sku_Sub_Cat_ID;
                articuloEntity.Sku_Latitud     = model.Sku_Latitud;
                articuloEntity.Sku_Longitud    = model.Sku_Longitud;
                await _contextInventario.Articulo.AddRangeAsync(articuloEntity);

                await _contextInventario.SaveChangesAsync();

                return(RedirectToAction("GetById", "Articulos", new { id = articuloEntity.Sku_ID }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, "Ocurrio un error al crear el artículo. " + ex.Message));
            }
            finally
            {
                articuloEntity = null;
                model          = null;
            }
        }
Example #3
0
        public ActionResult Editar(ArticuloViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    using (EurekaLibreriaDBEntities db = new EurekaLibreriaDBEntities())
                    {
                        var oArticulo = db.Articulos.Find(model.Id);
                        oArticulo.Nombre          = model.Nombre;
                        oArticulo.Descripcion     = model.Descripcion;
                        oArticulo.Categoria       = model.Categoria;
                        oArticulo.Autor           = model.Autor;
                        oArticulo.TotalInventario = model.TotalInventario;
                        oArticulo.Editorial       = model.Editorial;
                        oArticulo.Precio          = model.Precio;

                        db.Entry(oArticulo).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                    }
                    return(Redirect("~/Articulo/"));
                }
                return(View(model));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Example #4
0
        public ActionResult Create(ArticuloViewModel articulo)
        {
            articulo.TagsSeleccionados = articulo.TagsSeleccionados.Where(s => s.Eliminado == false).ToList();

            if (ModelState.IsValid)
            {
                articulo = _articuloManager.Guardar(articulo);

                AddMessage("Articulo grabado correctamente", Infraestructura.Managers.Imp.MessageType.Normal);

                return(RedirectToAction("Edit", new { Area = "Repositorio", id = articulo.Id }));
            }

            AddMessage("Hubo un error al guardar", Infraestructura.Managers.Imp.MessageType.Error);



            _articuloManager.RellenarSeleccionables(articulo);

            articulo.Tags = articulo.TagsSeleccionados.Select(s => new utilidades.Entities.Repositorio.Tag()
            {
                Descripcion = s.Descripcion
            }).ToList();

            return(View(articulo));
        }
        public IActionResult Agregar(ArticuloViewModel p_articuloVM)
        {
            try
            {
                //this._articuloService.AgregarArticulo(p_articuloDTO);
                if (!ModelState.IsValid)
                {
                    return(View("error"));
                }
                else
                {
                    var articuloDTO = this._mapper.Map <ArticuloViewModel, ArticuloDTO>(p_articuloVM);
                    int result      = this._articuloService.AgregarArticulo(articuloDTO);

                    ViewBag.result = "Accion realizada con exito.";

                    List <ArticuloViewModel> listArticuloViewModels = this._articuloService.getArticulos()
                                                                      .Select(x => this._mapper.Map <ArticuloDTO, ArticuloViewModel>(x)).ToList();

                    return(View("index", listArticuloViewModels));
                }
            }
            catch (Exception ex)
            {
                ViewBag.error          = ex.InnerException.Message;
                ViewData["accionCRUD"] = AccionesCRUD.AGREGAR;
                return(View("form", p_articuloVM));
            }
        }
Example #6
0
        // GET: Articulo/Create
        public ActionResult Create()

        {
            ArticuloViewModel usuarioEN = new ArticuloViewModel();

            return(View(usuarioEN));
        }
Example #7
0
        public IActionResult Edit(ArticuloViewModel model)
        {
            if (ModelState.IsValid)
            {
                string rutaPrincipal = _hostingEnvironment.WebRootPath;
                var    archivos      = HttpContext.Request.Form.Files;
                var    oldModel      = _contenedorTrabajo.Articulo.Get(model.Articulo.Id);

                if (archivos.Count > 0)
                {
                    //Nuevo Artículo
                    string nombreArchivo = Guid.NewGuid().ToString();
                    var    extension     = Path.GetExtension(archivos[0].FileName);
                    var    sUrl          = Path.Combine(@"imagenes\articulos", nombreArchivo + extension);

                    using (var fileStreams = new FileStream(Path.Combine(rutaPrincipal, sUrl), FileMode.Create))
                    {
                        archivos[0].CopyTo(fileStreams);
                    }
                    model.Articulo.UrlImagen = sUrl;
                }
                else
                {
                    model.Articulo.UrlImagen = oldModel.UrlImagen;
                }

                model.Articulo.FechaCreacion = DateTime.Now;

                _contenedorTrabajo.Articulo.Update(model.Articulo);
                _contenedorTrabajo.Save();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
Example #8
0
        public async Task <IHttpActionResult> Update(ArticuloViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Content(HttpStatusCode.BadRequest, "Modelo no válido."));
                }
                Articulo articuloEntity = await _InventarioContext.Articulo.FindAsync(model.Sku_ID);

                if (articuloEntity == null)
                {
                    return(Content(HttpStatusCode.NotFound, "Articulo no encontrado."));
                }
                articuloEntity.Sku_ID          = model.Sku_ID;
                articuloEntity.Sku_NumeroSerie = model.Sku_NumeroSerie;
                articuloEntity.Sku_Descripcion = model.Sku_Descripcion;
                articuloEntity.Sku_Cantidad    = model.Sku_Cantidad;
                articuloEntity.Sku_Cat_ID      = model.Sku_Cat_ID;
                articuloEntity.Sku_Sub_Cat_ID  = model.Sku_Sub_Cat_ID;
                articuloEntity.Sku_Latitud     = model.Sku_Latitud;
                articuloEntity.Sku_Longitud    = model.Sku_Longitud;
                await _InventarioContext.SaveChangesAsync();

                return(Content(HttpStatusCode.OK, articuloEntity));
            }
            catch (Exception ex)
            {
                return(Content(HttpStatusCode.InternalServerError, ex));
            }
        }
Example #9
0
        public async Task <IActionResult> Create(ArticuloViewModel view)
        {
            if (ModelState.IsValid)
            {
                var path = string.Empty;

                if (view.ImageFile != null && view.ImageFile.Length > 0)
                {
                    var guid = Guid.NewGuid().ToString();
                    var file = $"{guid}.jpg";

                    path = Path.Combine(
                        Directory.GetCurrentDirectory(),
                        "wwwroot\\images\\Articulos",
                        file);

                    using (var stream = new FileStream(path, FileMode.Create))
                    {
                        await view.ImageFile.CopyToAsync(stream);
                    }

                    path = $"~/images/Articulos/{file}";
                }

                var product = this.ToProduct(view, path);
                // TODO: Pending to change to: this.User.Identity.Name
                product.User = await this.userHelper.GetUserByEmailAsync(this.User.Identity.Name);

                await this.productRepository.CreateAsync(product);

                return(RedirectToAction(nameof(Index)));
            }

            return(View(view));
        }
        public IActionResult Create(ArticuloViewModel articuloViewModel)
        {
            if (ModelState.IsValid)
            {
                #region SUBIR IMAGEN
                string rutaPrincipal = _hostingEnvironment.WebRootPath; // wwwroot
                var    archivos      = HttpContext.Request.Form.Files;
                if (articuloViewModel.Articulo.Id == 0)
                {
                    //nuevo articulo
                    string nombreArchivo = Guid.NewGuid().ToString();
                    var    subidas       = Path.Combine(rutaPrincipal, @"imagenes\articulos");
                    var    extension     = Path.GetExtension(archivos[0].FileName);

                    using (var fileStreams = new FileStream(Path.Combine(subidas, nombreArchivo + extension), FileMode.Create))
                    {
                        archivos[0].CopyTo(fileStreams);
                    }
                    articuloViewModel.Articulo.UrlImagen     = @"\imagenes\articulos\" + nombreArchivo + extension;
                    articuloViewModel.Articulo.FechaCreacion = DateTime.Now.ToString();
                    #endregion

                    //guardar
                    _contenedorTrabajo.Articulo.Add(articuloViewModel.Articulo);
                    _contenedorTrabajo.Save();
                    return(RedirectToAction(nameof(Index)));
                }
            }
            articuloViewModel.ListaCategorias = _contenedorTrabajo.Categoria.GetListaCategorias();
            return(View(articuloViewModel));
        }
        public IActionResult Modificar(ArticuloViewModel p_articuloVM)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View("error"));
                }
                else
                {
                    ArticuloDTO articuloDTO = this._mapper.Map <ArticuloViewModel, ArticuloDTO>(p_articuloVM);
                    int         result      = this._articuloService.ModificarArticulo(articuloDTO);

                    ViewBag.result = "Accion realizada con exito.";

                    List <ArticuloViewModel> listArticuloViewModels = this._articuloService.getArticulos()
                                                                      .Select(x => this._mapper.Map <ArticuloDTO, ArticuloViewModel>(x)).ToList();

                    return(View("index", listArticuloViewModels));
                }
            }
            catch (Exception ex)
            {
                ViewBag.error          = ex.InnerException.Message;
                ViewData["accionCRUD"] = AccionesCRUD.MODIFICAR;

                List <SelectListItem> modelos = this._modeloService.getModelos()
                                                .Select(x => new SelectListItem
                {
                    Value = x.Id.ToString(),
                    Text  = $"{x.Codigo} - {x.Descripcion}"
                }).ToList();

                List <SelectListItem> colores = this._colorService.getColores()
                                                .Select(x => new SelectListItem
                {
                    Value = x.Id.ToString(),
                    Text  = $"{x.Codigo} - {x.Descripcion}"
                }).ToList();

                List <SelectListItem> marcas = this._marcaService.getMarcas()
                                               .Select(x => new SelectListItem
                {
                    Value = x.Id.ToString(),
                    Text  = $"{x.Codigo} - {x.Descripcion}"
                }).ToList();

                List <SelectListItem> categorias = this._categoriaService.getCategorias()
                                                   .Select(x => new SelectListItem
                {
                    Value = x.Id.ToString(),
                    Text  = $"{x.Codigo} - {x.Descripcion}"
                }).ToList();
                p_articuloVM.Modelos    = modelos;
                p_articuloVM.Colores    = colores;
                p_articuloVM.Marcas     = marcas;
                p_articuloVM.Categorias = categorias;
                return(View("form", p_articuloVM));
            }
        }
Example #12
0
        public async Task <IHttpActionResult> Create(ArticuloViewModel model)
        {
            Articulo ArticuloEntity = new Articulo();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(Content(HttpStatusCode.BadRequest, "Modelo no válido."));
                }

                ArticuloEntity.Sku_NumeroSerie = model.Sku_NumeroSerie;
                ArticuloEntity.Sku_Descripcion = model.Sku_Descripcion;
                ArticuloEntity.Sku_Cantidad    = model.Sku_Cantidad;
                ArticuloEntity.Sku_Cat_ID      = model.Sku_Cat_ID;
                ArticuloEntity.Sku_Sub_Cat_ID  = model.Sku_Sub_Cat_ID;
                ArticuloEntity.Sku_Latitud     = model.Sku_Latitud;
                ArticuloEntity.Sku_Longitud    = model.Sku_Longitud;
                _InventarioContext.Articulo.Add(ArticuloEntity);
                await _InventarioContext.SaveChangesAsync();

                return(Content(HttpStatusCode.Created, ArticuloEntity));
            }
            catch (ApplicationException ex)
            {
                return(Content(HttpStatusCode.InternalServerError, ex));
            }
            finally
            {
                ArticuloEntity = null;
                model          = null;
            }
        }
Example #13
0
        // GET: Repositorio/Articulo/Create
        public ActionResult Create()
        {
            var vm = new ArticuloViewModel();

            _articuloManager.RellenarSeleccionables(vm);

            return(View(vm));
        }
Example #14
0
        // GET: Checkout
        public ActionResult Index()
        {
            CheckoutMpService checkout   = new CheckoutMpService();
            ArticuloViewModel miArticulo = new ArticuloViewModel();

            miArticulo.InitPoint = checkout.CrearPreferencia(miArticulo)?.InitPoint;
            return(View(miArticulo));
        }
        public IActionResult Edit(ArticuloViewModel articuloViewModel)
        {
            if (ModelState.IsValid)
            {
                string rutaPrincipal = _hostingEnvironment.WebRootPath;
                var    archivos      = HttpContext.Request.Form.Files;

                //Obtenemos el objeto de Articulo por el id
                var articulosFromDb = _contenedorTrabajo.Articulo.Get(articuloViewModel.Articulo.Id);

                // verificamos si la imagen existe y se ha cambiado
                if (archivos.Count > 0)
                {
                    // Editamos la imagen
                    string nombreArchivo = Guid.NewGuid().ToString();
                    // ruta en donde se subiran los archivos, raiz wwwroot
                    var subidas = Path.Combine(rutaPrincipal, @"imagenes\articulos");
                    // obtener la extension del archivo
                    var extension = Path.GetExtension(archivos[0].FileName);

                    var nuevaExtension = Path.GetExtension(archivos[0].FileName);

                    var rutaImagen = Path.Combine(rutaPrincipal, articulosFromDb.UrlImagen.TrimStart('\\'));

                    // validamos si la imagen que ingresa ya existe en la carpeta, entonces la borramos
                    if (System.IO.File.Exists(rutaImagen))
                    {
                        System.IO.File.Delete(rutaImagen);
                    }
                    // subir nuevamente el archivo
                    using (var fileStreams = new FileStream(Path.Combine(subidas, nombreArchivo + nuevaExtension), FileMode.Create))
                    {
                        archivos[0].CopyTo(fileStreams);
                    }

                    articuloViewModel.Articulo.UrlImagen = @"\imagenes\articulos\" + nombreArchivo + nuevaExtension;
                    // asignamos la fecha actual del servidor
                    articuloViewModel.Articulo.FechaCreacion = DateTime.Now.ToString();

                    _contenedorTrabajo.Articulo.Update(articuloViewModel.Articulo);
                    _contenedorTrabajo.Save();

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    // Imagen ya existe pero NO se va ha reemplazar
                    // conservar la imagen que ya esta en la BD
                    articuloViewModel.Articulo.UrlImagen = articulosFromDb.UrlImagen;
                }

                _contenedorTrabajo.Articulo.Update(articuloViewModel.Articulo);
                _contenedorTrabajo.Save();
                return(RedirectToAction(nameof(Index)));
            }

            return(View());
        }
 private void SubirImagenes(ArticuloViewModel model)
 {
     if (model.ImagenPreguntaFile != null)
     {
         FileUploadHelper.SubirImagenArticulo(model.ImagenPreguntaFile, 1200, 370, Server.MapPath(Url.Content("~/Imagenes/")) + model.Articulo.ArticuloId + "_xl.jpg");
         FileUploadHelper.SubirImagenArticulo(model.ImagenPreguntaFile, 800, 640, Server.MapPath(Url.Content("~/Imagenes/")) + model.Articulo.ArticuloId + "_l.jpg");
         FileUploadHelper.SubirImagenArticulo(model.ImagenPreguntaFile, 370, 320, Server.MapPath(Url.Content("~/Imagenes/")) + model.Articulo.ArticuloId + "_m.jpg");
         FileUploadHelper.SubirImagenArticulo(model.ImagenPreguntaFile, 100, 76, Server.MapPath(Url.Content("~/Imagenes/")) + model.Articulo.ArticuloId + "_s.jpg");
     }
 }
Example #17
0
        public IActionResult Create()
        {
            var data = new ArticuloViewModel
            {
                Articulo        = new Models.Articulo(),
                ListaCategorias = _contenedorTrabajo.Categoria.GetListaCategorias()
            };

            return(View(data));
        }
        public IActionResult Compras()
        {
            CheckoutMpService checkout = new CheckoutMpService();
            ArticuloViewModel articulo = new ArticuloViewModel()
            {
            };

            articulo.Id = checkout.CrearPreferencia(articulo);
            return(View(articulo));
        }
Example #19
0
        // GET: Articulo/Delete/5
        public ActionResult Delete(int id)
        {
            ArticuloViewModel usu = null;

            SessionInitialize();
            ArticuloEN usuEN = new ArticuloCAD(session).ReadOIDDefault(id);

            usu = new AssemblerArticulo().ConvertENToModelUI(usuEN);
            SessionClose();
            return(View(usu));
        }
        public IActionResult Create()
        {
            //instaciamos el viewmodel para poder obtener la informacion de categoria
            ArticuloViewModel articuloViewModel = new ArticuloViewModel()
            {
                Articulo        = new Models.Articulo(),
                ListaCategorias = _contenedorTrabajo.Categoria.GetListaCategorias()
            };

            return(View(articuloViewModel));
        }
        public IActionResult Edit(ArticuloViewModel articuloViewModel)
        {
            if (ModelState.IsValid)
            {
                #region SUBIR IMAGEN
                string rutaPrincipal = _hostingEnvironment.WebRootPath; // wwwroot
                var    archivos      = HttpContext.Request.Form.Files;
                //obtener por su id el articulo
                var articuloDesdeDb = _contenedorTrabajo.Articulo.Get(articuloViewModel.Articulo.Id);

                if (archivos.Count() > 0)
                {
                    //Editar imagen
                    string nombreArchivo  = Guid.NewGuid().ToString();
                    var    subidas        = Path.Combine(rutaPrincipal, @"imagenes\articulos");
                    var    extension      = Path.GetExtension(archivos[0].FileName);
                    var    nuevaExtension = Path.GetExtension(archivos[0].FileName);

                    var rutaImagen = Path.Combine(rutaPrincipal, articuloDesdeDb.UrlImagen.TrimStart('\\'));

                    //Remplazar imagen
                    if (System.IO.File.Exists(rutaImagen))
                    {
                        System.IO.File.Delete(rutaImagen);
                    }

                    //subimos nuevamente el archivo
                    using (var fileStreams = new FileStream(Path.Combine(subidas, nombreArchivo + nuevaExtension), FileMode.Create))
                    {
                        archivos[0].CopyTo(fileStreams);
                    }
                    articuloViewModel.Articulo.UrlImagen     = @"\imagenes\articulos\" + nombreArchivo + nuevaExtension;
                    articuloViewModel.Articulo.FechaCreacion = DateTime.Now.ToString();
                    #endregion

                    //guardar
                    _contenedorTrabajo.Articulo.Update(articuloViewModel.Articulo);
                    _contenedorTrabajo.Save();
                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    //cuando la imagen ya existe y no se reemplaza, debe conservar la que ya tiene
                    articuloViewModel.Articulo.UrlImagen = articuloDesdeDb.UrlImagen;
                    //guardar
                    _contenedorTrabajo.Articulo.Update(articuloViewModel.Articulo);
                    _contenedorTrabajo.Save();
                    return(RedirectToAction(nameof(Index)));
                }
            }
            return(View());
        }
Example #22
0
 public ActionResult Delete(ArticuloViewModel articulo)
 {
     try
     {
         ArticuloCEN art = new ArticuloCEN();
         art.Destroy(articulo.id);
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View());
     }
 }
        private void ActualizarCuerpo(ArticuloViewModel model)
        {
            model.Articulo.Cuerpo = FileUploadHelper.ActualizarImagenesCuerpo(model.Articulo.Cuerpo, model.Articulo.ArticuloId, "Imagenes/");

            model.Articulo.CuerpoResumen = HtmlTextHelper.QuitarEtiquetas(model.Articulo.Cuerpo);

            if (model.Articulo.CuerpoResumen.Length > 100)
            {
                model.Articulo.CuerpoResumen = model.Articulo.CuerpoResumen.Substring(0, 100);
            }
            db.Entry(model.Articulo).State = EntityState.Modified;
            db.SaveChanges();
        }
Example #24
0
 public ActionResult Edit(ArticuloViewModel articulo)
 {
     try
     {
         ArticuloCEN art = new ArticuloCEN();
         art.Modify(articulo.id, articulo.Nombre, articulo.Stock, articulo.Precio, articulo.ValMedia, articulo.Descripcion, articulo.Imagen, articulo.Marca);
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View());
     }
 }
        public async Task <IActionResult> ModificarArticulo([FromBody] ArticuloViewModel datos)
        {
            try
            {
                var response = await _articulo.ModificarArticulo(datos);

                return(Ok(response));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public ArticuloViewModel Modificar(ArticuloViewModel articulo)
        {
            Articulo art = ArticuloFromViewModel(articulo);

            var tags = art.Tags;

            art = _articuloService.Modificar(art, ContextoApp.Usuario.NombreUsuario);

            return(new ArticuloViewModel()
            {
                Id = art.Id
            });
        }
        public IActionResult Edit(int?id)
        {
            ArticuloViewModel articuloViewModel = new ArticuloViewModel()
            {
                Articulo        = new Modelos.Articulo(),
                ListaCategorias = _contenedorTrabajo.Categoria.GetListaCategorias()
            };

            if (id != null)
            {
                articuloViewModel.Articulo = _contenedorTrabajo.Articulo.Get(id.GetValueOrDefault());
            }
            return(View(articuloViewModel));
        }
Example #28
0
 private Articulo ToProduct(ArticuloViewModel view, string path)
 {
     return(new Articulo
     {
         Id = view.Id,
         ImageUrl = path,
         Nombre = view.Nombre,
         TipoArticulo = view.TipoArticulo,
         InfoArticulo = view.InfoArticulo,
         Status = view.Status,
         Stock = view.Stock,
         User = view.User
     });
 }
        public IActionResult Edit(int?id)
        {
            //instaciamos el viewmodel para poder obtener la informacion de categoria
            ArticuloViewModel articuloViewModel = new ArticuloViewModel()
            {
                Articulo        = new Models.Articulo(),
                ListaCategorias = _contenedorTrabajo.Categoria.GetListaCategorias()
            };

            if (id != null)
            {
                articuloViewModel.Articulo = _contenedorTrabajo.Articulo.Get(id.GetValueOrDefault());
            }
            return(View(articuloViewModel));
        }
Example #30
0
        public IActionResult Edit(int?id)
        {
            var model = new ArticuloViewModel
            {
                Articulo        = new Models.Articulo(),
                ListaCategorias = _contenedorTrabajo.Categoria.GetListaCategorias()
            };

            if (id != null)
            {
                model.Articulo = _contenedorTrabajo.Articulo.Get(id.GetValueOrDefault());
                return(View(model));
            }
            return(NotFound());
        }
        // GET: Articulo/Delete/5
        public ActionResult Delete(int? id)
        {
            //TODO: mostrar imagen miniatura
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Articulo articulo = db.Articulo.Find(id);
            if (articulo == null)
            {
                return HttpNotFound();
            }
            var model = new ArticuloViewModel();
            model.codigo = articulo.codigo;
            model.descripcion = articulo.descripcion;
            model.id = articulo.id;
            model.imagen = articulo.imagen;
            var precios = db.ArticuloPrecio.Where<ArticuloPrecio>(a => a.idArticulo == articulo.id).ToList();
            var articuloPrecio = precios.OrderByDescending(p => p.timestamp).First();
            model.precio = articuloPrecio.precio;
            model.moneda = articuloPrecio.moneda;

            return View(model);
        }
 // GET: Articulo
 public ActionResult Index()
 {
     //TODO: mostrar imagen miniatura
     //TODO: Export a exel
     //TODO: Agregar stock por ubicacion o consolidado con un desplegable que muestre cantidad por ubicacion.
     List<ArticuloViewModel> models = new List<ArticuloViewModel>();
     List<Articulo> articulos = db.Articulo.Where<Articulo>(a => a.activo == true).ToList();
     foreach (var art in articulos)
     {
         var model = new ArticuloViewModel();
         model.codigo = art.codigo;
         model.descripcion = art.descripcion;
         model.id = art.id;
         model.imagen = art.imagen;
         var precios = db.ArticuloPrecio.Where<ArticuloPrecio>(a => a.idArticulo == art.id).ToList();
         var articuloPrecio = precios.OrderByDescending(p => p.timestamp).First();
         model.precio = articuloPrecio.precio;
         model.moneda = articuloPrecio.moneda;
         models.Add(model);
     }
     return View(models);
 }