Esempio n. 1
0
        public async Task <bool> UpdateIncAsync(Expression <Func <TEntity, bool> > filter, Dictionary <Expression <Func <TEntity, object> >, object> updates)
        {
            var ups = updates.Select(upitem => Builders <TEntity> .Update.Inc(upitem.Key, upitem.Value)).ToList();
            var x   = await PrimaryMongoCollection.UpdateManyAsync(SoftFilter(filter), Builders <TEntity> .Update.Combine(ups));

            return(x.IsAcknowledged);
        }
Esempio n. 2
0
 public virtual void Insert(TEntity entity)
 {
     if (EntityDescribe.BusinessPrimaryKeyAttribute != null)
     {
         var value = _businessPrimaryKeyGen.Gen(EntityDescribe.BusinessPrimaryKeyAttribute.BusinessPrimaryKeyType);
         EntityDescribe.BusinessPrimaryKeyAttribute.KeyDescriptor.SetValue(entity, value);
     }
     PrimaryMongoCollection.InsertOne(entity);
 }
Esempio n. 3
0
 public virtual Task InsertAsync(TEntity entity)
 {
     if (EntityDescribe.BusinessPrimaryKeyAttribute != null)
     {
         var value = _businessPrimaryKeyGen.Gen(EntityDescribe.BusinessPrimaryKeyAttribute.BusinessPrimaryKeyType);
         EntityDescribe.BusinessPrimaryKeyAttribute.KeyDescriptor.SetValue(entity, value);
     }
     return(PrimaryMongoCollection.InsertOneAsync(entity));
 }
Esempio n. 4
0
        public virtual TEntity FindOneAndUpdateInc(Expression <Func <TEntity, bool> > filter, Dictionary <Expression <Func <TEntity, object> >, object> updates)
        {
            var ups     = updates.Select(upitem => Builders <TEntity> .Update.Inc(upitem.Key, upitem.Value)).ToList();
            var options = new FindOneAndUpdateOptions <TEntity, TEntity>
            {
                ReturnDocument = ReturnDocument.After
            };

            return(PrimaryMongoCollection.FindOneAndUpdate(SoftFilter(filter), Builders <TEntity> .Update.Combine(ups), options: options));
        }
Esempio n. 5
0
 public virtual Task InsertAsync(IEnumerable <TEntity> entities)
 {
     if (EntityDescribe.BusinessPrimaryKeyAttribute != null)
     {
         foreach (var entity in entities)
         {
             var value = _businessPrimaryKeyGen.Gen(EntityDescribe.BusinessPrimaryKeyAttribute.BusinessPrimaryKeyType);
             EntityDescribe.BusinessPrimaryKeyAttribute.KeyDescriptor.SetValue(entity, value);
         }
     }
     return(PrimaryMongoCollection.InsertManyAsync(entities));
 }
Esempio n. 6
0
        public virtual async Task <bool> DeleteAsync(Expression <Func <TEntity, bool> > filter)
        {
            if (SoftDelete)
            {
                var x = await PrimaryMongoCollection.UpdateManyAsync(filter,
                                                                     Builders <TEntity> .Update.Set(i => ((ISoftDelete)i).IsDeleted, true));

                return(x.IsAcknowledged);
            }
            else
            {
                var x = await PrimaryMongoCollection.DeleteManyAsync(filter);

                return(x.IsAcknowledged);
            }
        }
Esempio n. 7
0
        public virtual bool Update(Expression <Func <TEntity, bool> > filter, Dictionary <Expression <Func <TEntity, object> >, object> updates)
        {
            var ups = updates.Select(upitem => Builders <TEntity> .Update.Set(upitem.Key, upitem.Value)).ToList();

            return(PrimaryMongoCollection.UpdateMany(SoftFilter(filter), Builders <TEntity> .Update.Combine(ups)).IsAcknowledged);
        }
Esempio n. 8
0
        public virtual async Task <bool> ReplaceAsync(TEntity entity)
        {
            var x = await PrimaryMongoCollection.ReplaceOneAsync(CreateEqualityExpressionForId(entity.Id), entity);

            return(x.IsAcknowledged);
        }
Esempio n. 9
0
 public virtual bool Replace(TEntity entity)
 {
     return(PrimaryMongoCollection.ReplaceOne(CreateEqualityExpressionForId(entity.Id), entity).IsAcknowledged);
 }
Esempio n. 10
0
 public virtual async Task <TEntity> FindOneAndDeleteAsync(Expression <Func <TEntity, bool> > filter)
 {
     return(await PrimaryMongoCollection.FindOneAndDeleteAsync(SoftFilter(filter)));
 }
Esempio n. 11
0
 public virtual TEntity FindOneAndDelete(Expression <Func <TEntity, bool> > filter)
 {
     return(PrimaryMongoCollection.FindOneAndDelete(SoftFilter(filter)));
 }
Esempio n. 12
0
 public virtual TEntity FindOneAndReplace(Expression <Func <TEntity, bool> > filter, TEntity entity)
 {
     return(PrimaryMongoCollection.FindOneAndReplace(SoftFilter(filter), entity));
 }
Esempio n. 13
0
        public virtual async Task <TEntity> FindOneAndUpdateAsync(Expression <Func <TEntity, bool> > filter, Dictionary <Expression <Func <TEntity, object> >, object> updates)
        {
            var ups = updates.Select(upitem => Builders <TEntity> .Update.Set(upitem.Key, upitem.Value)).ToList();

            return(await PrimaryMongoCollection.FindOneAndUpdateAsync(SoftFilter(filter), Builders <TEntity> .Update.Combine(ups)));
        }
Esempio n. 14
0
 public virtual bool Delete(Expression <Func <TEntity, bool> > filter)
 {
     return(SoftDelete
         ? PrimaryMongoCollection.UpdateMany(filter, Builders <TEntity> .Update.Set(i => ((ISoftDelete)i).IsDeleted, true)).IsAcknowledged
         : PrimaryMongoCollection.DeleteMany(filter).IsAcknowledged);
 }
Esempio n. 15
0
 public virtual bool Remove(Expression <Func <TEntity, bool> > filter)
 {
     return(PrimaryMongoCollection.DeleteMany(filter).IsAcknowledged);
 }