public override bool Modificar(Listas lista) { RepositorioLista repositorioVentas = new RepositorioLista(new Contexto()); Contexto contextoLista = new Contexto(); bool pasoLista = false; try { Contexto contexto = new Contexto(); bool paso = false; var anterior = repositorioVentas.Buscar(lista.ListaId); foreach (var item in anterior.DetalleListas.ToList()) { if (!lista.DetalleListas.Exists(e => e.DetalleListaId == item.DetalleListaId)) { contexto.Clientes.Find().CantidaArticulo += item.Cantidad; contexto.Entry(item).State = System.Data.Entity.EntityState.Deleted; paso = true; } } if (paso) { contexto.SaveChanges(); contexto.Dispose(); } foreach (var item in lista.DetalleListas) { var estado = EntityState.Unchanged; if (item.DetalleListaId == 0) { estado = EntityState.Added; } contextoLista.Entry(item).State = estado; contextoLista.Clientes.Find(item.ClienteId).CantidaArticulo -= item.Cantidad; } contextoLista.Entry(lista).State = EntityState.Modified; if (contextoLista.SaveChanges() > 0) { pasoLista = true; } } catch (Exception) { throw; } return(pasoLista); }
public override bool Eliminar(int id) { bool paso = false; RepositorioLista repositorio = new RepositorioLista(new Contexto()); Listas evaluaciones = _contexto.Listas.Find(id); foreach (var item in evaluaciones.DetalleListas) { _contexto.Clientes.Find(item.ClienteId).CantidaArticulo -= item.Cantidad; } _contexto.Listas.Remove(evaluaciones); paso = _contexto.SaveChanges() > 0; return(paso); }