public override bool Guardar(Vendedor entity)
        {
            bool     paso     = false;
            Contexto contexto = new Contexto();

            try
            {
                Meta meta = null;
                entity.Detalles.Count();

                foreach (var item in entity.Detalles)
                {
                    meta        = MetaBLL.Buscar(item.MetaId);
                    meta.Cuota -= item.Cuota;
                }
                MetaBLL.Modificar(meta);
                //Probar con el repositorio
                if (contexto.Vendedor.Add(entity) != null)
                {
                    contexto.SaveChanges();
                    paso = true;
                }
                contexto.Dispose();
            }
            catch (Exception) { throw; }
            return(paso);
        }
        public override bool Modificar(Vendedor entity)
        {
            bool paso = false;

            try
            {
                var Anterior = new VendedorRepositorio().Buscar(entity.VendedorId);
                if (Anterior.Detalles.Count() > entity.Detalles.Count())
                {
                    foreach (var item in Anterior.Detalles)
                    {
                        if (!entity.Detalles.Exists(d => d.MetaDetalleId == item.MetaDetalleId))
                        {
                            Meta meta = MetaBLL.Buscar(item.MetaId);
                            meta.Cuota += item.Cuota;
                            _contexto.Entry(item).State = EntityState.Deleted;
                        }
                    }
                }

                Vendedor Antes = new RepositorioBase <Vendedor>().Buscar(entity.VendedorId);
                Antes.Detalles.Count();
                for (int i = 0; i < entity.Detalles.Count(); i++)
                {
                    EntityState estado = (entity.Detalles[i].MetaDetalleId == 0) ? EntityState.Added : EntityState.Modified;
                    Meta        meta   = MetaBLL.Buscar(entity.Detalles[i].MetaId);

                    if (estado == EntityState.Modified)
                    {
                        if (Antes.Detalles[i].Cuota > entity.Detalles[i].Cuota)
                        {
                            meta.Cuota -= meta.Cuota - entity.Detalles[i].Cuota;
                        }
                        else if (Antes.Detalles[i].Cuota < entity.Detalles[i].Cuota)
                        {
                            meta.Cuota += entity.Detalles[i].Cuota - meta.Cuota;
                        }
                    }
                    else if (estado == EntityState.Added)
                    {
                        //Esto era que estaba malo porque estaba sumando en lugar de restar -_-"
                        meta.Cuota -= entity.Detalles[i].Cuota;
                    }

                    MetaBLL.Modificar(meta);
                }



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