|
|
@ -47,10 +47,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB |
|
|
* This is also true for other "ed" & "ing" events. |
|
|
* This is also true for other "ed" & "ing" events. |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
EntityChangeEventHelper.TriggerEntityCreatedEventOnUowCompleted(entity); |
|
|
ApplyAbpConceptsForAddedEntity(entity); |
|
|
EntityChangeEventHelper.TriggerEntityCreatingEvent(entity); |
|
|
|
|
|
|
|
|
|
|
|
TriggerDomainEvents(entity); |
|
|
|
|
|
|
|
|
|
|
|
Collection.InsertOne(entity); |
|
|
Collection.InsertOne(entity); |
|
|
|
|
|
|
|
|
@ -62,10 +59,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB |
|
|
bool autoSave = false, |
|
|
bool autoSave = false, |
|
|
CancellationToken cancellationToken = default) |
|
|
CancellationToken cancellationToken = default) |
|
|
{ |
|
|
{ |
|
|
EntityChangeEventHelper.TriggerEntityCreatedEventOnUowCompleted(entity); |
|
|
ApplyAbpConceptsForAddedEntity(entity); //TODO: async?
|
|
|
EntityChangeEventHelper.TriggerEntityCreatingEvent(entity); |
|
|
|
|
|
|
|
|
|
|
|
TriggerDomainEvents(entity); |
|
|
|
|
|
|
|
|
|
|
|
await Collection.InsertOneAsync( |
|
|
await Collection.InsertOneAsync( |
|
|
entity, |
|
|
entity, |
|
|
@ -77,10 +71,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB |
|
|
|
|
|
|
|
|
public override TEntity Update(TEntity entity, bool autoSave = false) |
|
|
public override TEntity Update(TEntity entity, bool autoSave = false) |
|
|
{ |
|
|
{ |
|
|
EntityChangeEventHelper.TriggerEntityUpdatedEventOnUowCompleted(entity); |
|
|
ApplyAbpConceptsForUpdatedEntity(entity); |
|
|
EntityChangeEventHelper.TriggerEntityUpdatingEvent(entity); |
|
|
|
|
|
|
|
|
|
|
|
TriggerDomainEvents(entity); |
|
|
|
|
|
|
|
|
|
|
|
Collection.ReplaceOne( |
|
|
Collection.ReplaceOne( |
|
|
CreateEntityFilter(entity), |
|
|
CreateEntityFilter(entity), |
|
|
@ -95,10 +86,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB |
|
|
bool autoSave = false, |
|
|
bool autoSave = false, |
|
|
CancellationToken cancellationToken = default) |
|
|
CancellationToken cancellationToken = default) |
|
|
{ |
|
|
{ |
|
|
EntityChangeEventHelper.TriggerEntityUpdatedEventOnUowCompleted(entity); |
|
|
ApplyAbpConceptsForUpdatedEntity(entity); |
|
|
EntityChangeEventHelper.TriggerEntityUpdatingEvent(entity); |
|
|
|
|
|
|
|
|
|
|
|
TriggerDomainEvents(entity); |
|
|
|
|
|
|
|
|
|
|
|
await Collection.ReplaceOneAsync( |
|
|
await Collection.ReplaceOneAsync( |
|
|
CreateEntityFilter(entity), |
|
|
CreateEntityFilter(entity), |
|
|
@ -111,8 +99,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB |
|
|
|
|
|
|
|
|
public override void Delete(TEntity entity, bool autoSave = false) |
|
|
public override void Delete(TEntity entity, bool autoSave = false) |
|
|
{ |
|
|
{ |
|
|
EntityChangeEventHelper.TriggerEntityDeletedEventOnUowCompleted(entity); |
|
|
ApplyAbpConceptsForDeletedEntity(entity); |
|
|
EntityChangeEventHelper.TriggerEntityDeletingEvent(entity); |
|
|
|
|
|
|
|
|
|
|
|
Collection.DeleteOne( |
|
|
Collection.DeleteOne( |
|
|
CreateEntityFilter(entity) |
|
|
CreateEntityFilter(entity) |
|
|
@ -124,8 +111,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB |
|
|
bool autoSave = false, |
|
|
bool autoSave = false, |
|
|
CancellationToken cancellationToken = default) |
|
|
CancellationToken cancellationToken = default) |
|
|
{ |
|
|
{ |
|
|
EntityChangeEventHelper.TriggerEntityDeletedEventOnUowCompleted(entity); |
|
|
ApplyAbpConceptsForDeletedEntity(entity); |
|
|
EntityChangeEventHelper.TriggerEntityDeletingEvent(entity); |
|
|
|
|
|
|
|
|
|
|
|
await Collection.DeleteOneAsync( |
|
|
await Collection.DeleteOneAsync( |
|
|
CreateEntityFilter(entity), |
|
|
CreateEntityFilter(entity), |
|
|
@ -135,11 +121,14 @@ namespace Volo.Abp.Domain.Repositories.MongoDB |
|
|
|
|
|
|
|
|
public override void Delete(Expression<Func<TEntity, bool>> predicate, bool autoSave = false) |
|
|
public override void Delete(Expression<Func<TEntity, bool>> predicate, bool autoSave = false) |
|
|
{ |
|
|
{ |
|
|
//TODO: How to handle entity deletion event, soft delete and other stuff?
|
|
|
var entities = GetMongoQueryable() |
|
|
|
|
|
.Where(predicate) |
|
|
|
|
|
.ToList(); |
|
|
|
|
|
|
|
|
Collection.DeleteMany( |
|
|
foreach (var entity in entities) |
|
|
Builders<TEntity>.Filter.Where(predicate) |
|
|
{ |
|
|
); |
|
|
Delete(entity, autoSave); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public override async Task DeleteAsync( |
|
|
public override async Task DeleteAsync( |
|
|
@ -147,12 +136,14 @@ namespace Volo.Abp.Domain.Repositories.MongoDB |
|
|
bool autoSave = false, |
|
|
bool autoSave = false, |
|
|
CancellationToken cancellationToken = default) |
|
|
CancellationToken cancellationToken = default) |
|
|
{ |
|
|
{ |
|
|
//TODO: How to handle entity deletion event, soft delete and other stuff?
|
|
|
var entities = await GetMongoQueryable() |
|
|
|
|
|
.Where(predicate) |
|
|
|
|
|
.ToListAsync(GetCancellationToken(cancellationToken)); |
|
|
|
|
|
|
|
|
await Collection.DeleteManyAsync( |
|
|
foreach (var entity in entities) |
|
|
Builders<TEntity>.Filter.Where(predicate), |
|
|
{ |
|
|
GetCancellationToken(cancellationToken) |
|
|
await DeleteAsync(entity, autoSave, GetCancellationToken(cancellationToken)); |
|
|
); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
protected override IQueryable<TEntity> GetQueryable() |
|
|
protected override IQueryable<TEntity> GetQueryable() |
|
|
@ -177,6 +168,27 @@ namespace Volo.Abp.Domain.Repositories.MongoDB |
|
|
); |
|
|
); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected virtual void ApplyAbpConceptsForAddedEntity(TEntity entity) |
|
|
|
|
|
{ |
|
|
|
|
|
EntityChangeEventHelper.TriggerEntityCreatedEventOnUowCompleted(entity); |
|
|
|
|
|
EntityChangeEventHelper.TriggerEntityCreatingEvent(entity); |
|
|
|
|
|
TriggerDomainEvents(entity); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected virtual void ApplyAbpConceptsForUpdatedEntity(TEntity entity) |
|
|
|
|
|
{ |
|
|
|
|
|
EntityChangeEventHelper.TriggerEntityUpdatedEventOnUowCompleted(entity); |
|
|
|
|
|
EntityChangeEventHelper.TriggerEntityUpdatingEvent(entity); |
|
|
|
|
|
TriggerDomainEvents(entity); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void ApplyAbpConceptsForDeletedEntity(TEntity entity) |
|
|
|
|
|
{ |
|
|
|
|
|
EntityChangeEventHelper.TriggerEntityDeletedEventOnUowCompleted(entity); |
|
|
|
|
|
EntityChangeEventHelper.TriggerEntityDeletingEvent(entity); |
|
|
|
|
|
TriggerDomainEvents(entity); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
protected virtual void TriggerDomainEvents(object entity) //TODO: TriggerDomainEventsAsync..?
|
|
|
protected virtual void TriggerDomainEvents(object entity) //TODO: TriggerDomainEventsAsync..?
|
|
|
{ |
|
|
{ |
|
|
var generatesDomainEventsEntity = entity as IGeneratesDomainEvents; |
|
|
var generatesDomainEventsEntity = entity as IGeneratesDomainEvents; |
|
|
|