/// <summary> /// Permite Modificar una entidad en la base de datos /// </summary> /// <param name="inscripciones">Una instancia de visita</param> /// <returns>Retorna True si Modifico o Falso si falló </returns> public static bool Modificar(Ventas ventas) { bool paso = false; Contexto contexto = new Contexto(); try { //todo: buscar las entidades que no estan para removerlas var buscar = VentasBLL.Buscar(ventas.VentasId); foreach (var item in buscar.Detalle)//recorrer el detalle aterior { //restar todas las visitas contexto.Clientes.Find(item.ClienteId).Balance -= (decimal)item.Total; //determinar si el item no esta en el detalle actual if (!ventas.Detalle.ToList().Exists(v => v.ClienteId == item.ClienteId)) { contexto.Clientes.Find(item.ClienteId).Balance -= (decimal)item.Total; //item.Balance = ; //quitar la ciudad para que EF no intente hacerle nada contexto.Entry(item).State = System.Data.Entity.EntityState.Deleted; } } //recorrer el detalle foreach (var item in ventas.Detalle) { //Sumar todas las visitas contexto.Clientes.Find(item.ClienteId).Balance += (decimal)item.Total; //Muy importante indicar que pasara con la entidad del detalle var estado = item.ClienteId > 0 ? EntityState.Modified : EntityState.Added; contexto.Entry(item).State = estado; } //Idicar que se esta modificando el encabezado contexto.Entry(ventas).State = EntityState.Modified; if (contexto.SaveChanges() > 0) { paso = true; } contexto.Dispose(); } catch (Exception) { throw; } return(paso); }
public static bool Eliminar(int id) { bool paso = false; Contexto db = new Contexto(); try { var eliminar = VentasBLL.Buscar(id); db.Entry(eliminar).State = EntityState.Deleted; paso = (db.SaveChanges() > 0); } catch (Exception) { throw; } finally { db.Dispose(); } return(paso); }
public static List <Articulos> Articulo(int id) { var articulo = new List <Articulos>(); using (var db = new SistemaVentasDb()) { try { var venta = VentasBLL.Buscar(id); if (venta != null) { articulo = venta.Articulos; } } catch (Exception) { throw; } } return(articulo); }