public ActionResult Create([Bind(Include = "id,descripcion,codigo,imagen,precio,moneda")] ArticuloViewModel model) { //TODO: mostrar upload asincronico e imagen miniatura if (ModelState.IsValid) { var articulo = new Articulo(); articulo.codigo = model.codigo; articulo.descripcion = model.descripcion; articulo.imagen = model.imagen; articulo.activo = true; articulo = db.Articulo.Add(articulo); var articuloPrecio = new ArticuloPrecio(); articuloPrecio.idArticulo = articulo.id; articuloPrecio.moneda = model.moneda; articuloPrecio.timestamp = DateTime.Now; articuloPrecio.precio = model.precio; db.ArticuloPrecio.Add(articuloPrecio); db.SaveChanges(); return RedirectToAction("Index"); } return View(model); }
public ActionResult Edit([Bind(Include = "id,descripcion,codigo,imagen,precio,moneda")] ArticuloViewModel model) { if (ModelState.IsValid) { Articulo articulo = db.Articulo.Find(model.id); articulo.codigo = model.codigo; articulo.descripcion = model.descripcion; articulo.imagen = model.imagen; db.Entry(articulo).State = EntityState.Modified; var precios = db.ArticuloPrecio.Where<ArticuloPrecio>(a => a.idArticulo == articulo.id).ToList(); var precio = precios.OrderByDescending(p => p.timestamp).First(); if (precio.precio != model.precio || precio.moneda != model.moneda) { var articuloPrecio = new ArticuloPrecio(); articuloPrecio.idArticulo = articulo.id; articuloPrecio.moneda = model.moneda; articuloPrecio.timestamp = DateTime.Now; articuloPrecio.precio = model.precio; db.ArticuloPrecio.Add(articuloPrecio); } db.SaveChanges(); return RedirectToAction("Index"); } return View(model); }