private static bool Insertar(Ventas entity)
        {
            Contexto db   = new Contexto();
            bool     paso = false;

            try
            {
                foreach (var producto in entity.Productos)
                {
                    var productos = ProductosController.Buscar(producto.ProductoId);
                    productos.Cantidad -= producto.Cantidad;
                    ProductosController.Guardar(productos);
                }

                var cliente = ClientesController.Buscar(entity.ClienteId);
                cliente.Balance += entity.Total;
                ClientesController.Guardar(cliente);

                db.Ventas.Add(entity);
                paso = db.SaveChanges() > 0;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                db.Dispose();
            }


            return(paso);
        }
        public static bool Eliminar(int Id)
        {
            bool     paso     = false;
            Contexto Database = new Contexto();

            try
            {
                Compras Compra = Database.Compras.Find(Id);
                if (Compra != null)
                {
                    foreach (var item in Compra.ListaProductos)
                    {
                        var producto = ProductosController.Buscar(item.ProductoId);
                        producto.Cantidad -= item.Cantidad;
                        ProductosController.Guardar(producto);
                    }
                    Database.Compras.Remove(Compra);
                    paso = Database.SaveChanges() > 0;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Database.Dispose();
            }

            return(paso);
        }
        public static bool Insertar(Compras Compra)
        {
            Contexto Database = new Contexto();
            bool     paso     = false;

            try
            {
                foreach (var item in Compra.ListaProductos)
                {
                    var productos = ProductosController.Buscar(item.ProductoId);
                    productos.Cantidad += item.Cantidad;
                    ProductosController.Guardar(productos);
                }

                Database.Compras.Add(Compra);
                paso = Database.SaveChanges() > 0;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Database.Dispose();
            }
            return(paso);
        }
        private static bool Modificar(Ventas entity)
        {
            Contexto db   = new Contexto();
            bool     paso = false;

            try
            {
                var anterior = Buscar(entity.VentaId);

                foreach (var producto in entity.Productos)
                {
                    if (producto.VentaDetalleID == 0)
                    {
                        db.Entry(producto).State = EntityState.Added;
                    }
                    var productos = ProductosController.Buscar(producto.ProductoId);
                    productos.Cantidad -= producto.Cantidad;
                    ProductosController.Guardar(productos);
                }

                foreach (var producto in anterior.Productos)
                {
                    if (!entity.Productos.Any(A => A.VentaDetalleID == producto.VentaDetalleID))
                    {
                        db.Entry(producto).State = EntityState.Deleted;
                        var productos = ProductosController.Buscar(producto.ProductoId);
                        productos.Cantidad += producto.Cantidad;
                        ProductosController.Guardar(productos);
                    }
                }

                var cliente = ClientesController.Buscar(entity.ClienteId);
                cliente.Balance -= anterior.Total;
                cliente.Balance += entity.Total;
                ClientesController.Guardar(cliente);
                db.Entry(entity).State = EntityState.Modified;
                paso = db.SaveChanges() > 0;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                db.Dispose();
            }


            return(paso);
        }
        public static bool Modificar(Compras Compra)
        {
            Contexto Database = new Contexto();
            bool     paso     = false;

            try
            {
                var anterior = ComprasController.Buscar(Compra.CompraId);

                foreach (var item in Compra.ListaProductos)
                {
                    if (item.ID == 0)
                    {
                        Database.Entry(item).State = EntityState.Added;
                        var productos = ProductosController.Buscar(item.ProductoId);
                        productos.Cantidad += item.Cantidad;
                        ProductosController.Guardar(productos);
                    }
                }

                foreach (var item in anterior.ListaProductos)
                {
                    if (!Compra.ListaProductos.Any(Q => Q.ID == item.ID))
                    {
                        Database.Entry(item).State = EntityState.Deleted;
                        var productos = ProductosController.Buscar(item.ProductoId);
                        productos.Cantidad -= item.Cantidad;
                        ProductosController.Guardar(productos);
                    }
                }

                Database.Entry(Compra).State = EntityState.Modified;
                paso = Database.SaveChanges() > 0;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Database.Dispose();
            }

            return(paso);
        }
        public static bool Eliminar(int Id)
        {
            bool paso = false;

            Contexto db = new Contexto();

            try
            {
                Ventas venta = Buscar(Id);
                if (venta != null)
                {
                    foreach (var producto in venta.Productos)
                    {
                        var productos = ProductosController.Buscar(producto.ProductoId);
                        productos.Cantidad += producto.Cantidad;
                        ProductosController.Guardar(productos);
                    }

                    var cliente = ClientesController.Buscar(venta.ClienteId);
                    cliente.Balance -= venta.Total;
                    ClientesController.Guardar(cliente);

                    db.Entry(venta).State = EntityState.Deleted;
                    paso = db.SaveChanges() > 0;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                db.Dispose();
            }


            return(paso);
        }