Browse Source

Implementation of IMongoDbBulkOperationProvider into repository

pull/6679/head
enisn 6 years ago
parent
commit
a1a0f99bdb
  1. 4
      framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/IMongoDbBulkOperationProvider.cs
  2. 21
      framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs

4
framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/IMongoDbBulkOperationProvider.cs

@ -17,7 +17,7 @@ namespace Volo.Abp.MongoDB.Volo.Abp.Domain.Repositories.MongoDB
where TEntity : class, IEntity;
Task UpdateManyAsync<TDbContext, TEntity>(
Task UpdateManyAsync<TEntity>(
IMongoDbRepository<TEntity> repository,
IEnumerable<TEntity> entities,
bool autoSave,
@ -26,7 +26,7 @@ namespace Volo.Abp.MongoDB.Volo.Abp.Domain.Repositories.MongoDB
where TEntity : class, IEntity;
Task DeleteManyAsync<TDbContext, TEntity>(
Task DeleteManyAsync<TEntity>(
IMongoDbRepository<TEntity> repository,
IEnumerable<TEntity> entities,
bool autoSave,

21
framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs

@ -16,6 +16,7 @@ using Volo.Abp.EventBus.Distributed;
using Volo.Abp.EventBus.Local;
using Volo.Abp.Guids;
using Volo.Abp.MongoDB;
using Volo.Abp.MongoDB.Volo.Abp.Domain.Repositories.MongoDB;
namespace Volo.Abp.Domain.Repositories.MongoDB
{
@ -46,6 +47,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
public IAuditPropertySetter AuditPropertySetter { get; set; }
public IMongoDbBulkOperationProvider BulkOperationProvider { get; set; }
public MongoDbRepository(IMongoDbContextProvider<TMongoDbContext> dbContextProvider)
{
DbContextProvider = dbContextProvider;
@ -89,6 +92,12 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
await ApplyAbpConceptsForAddedEntityAsync(entity);
}
if (BulkOperationProvider != null)
{
await BulkOperationProvider.InsertManyAsync(this, entities, autoSave, cancellationToken);
return;
}
if (SessionHandle != null)
{
await Collection.InsertManyAsync(
@ -177,6 +186,12 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
SetNewConcurrencyStamp(entity);
}
if (BulkOperationProvider != null)
{
await BulkOperationProvider.UpdateManyAsync(this, entities, autoSave, cancellationToken);
return;
}
var entitiesCount = entities.Count();
BulkWriteResult result;
@ -277,6 +292,12 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
var oldConcurrencyStamp = SetNewConcurrencyStamp(entity);
}
if (BulkOperationProvider != null)
{
await BulkOperationProvider.DeleteManyAsync(this, entities, autoSave, cancellationToken);
return;
}
var entitiesCount = entities.Count();
if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity)))

Loading…
Cancel
Save