Browse Source

Set audit properties for mongodb.

pull/272/head
Halil İbrahim Kalkan 9 years ago
parent
commit
69249cfb92
  1. 21
      src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs

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

@ -6,6 +6,7 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MongoDB.Driver; using MongoDB.Driver;
using MongoDB.Driver.Linq; using MongoDB.Driver.Linq;
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Entities.Events; using Volo.Abp.Domain.Entities.Events;
using Volo.Abp.EventBus; using Volo.Abp.EventBus;
@ -35,6 +36,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
public IGuidGenerator GuidGenerator { get; set; } public IGuidGenerator GuidGenerator { get; set; }
public IAuditPropertySetter AuditPropertySetter { get; set; }
public MongoDbRepository(IMongoDbContextProvider<TMongoDbContext> dbContextProvider) public MongoDbRepository(IMongoDbContextProvider<TMongoDbContext> dbContextProvider)
{ {
DbContextProvider = dbContextProvider; DbContextProvider = dbContextProvider;
@ -174,6 +177,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
protected virtual void ApplyAbpConceptsForAddedEntity(TEntity entity) protected virtual void ApplyAbpConceptsForAddedEntity(TEntity entity)
{ {
CheckAndSetId(entity); CheckAndSetId(entity);
SetCreationAuditProperties(entity);
EntityChangeEventHelper.TriggerEntityCreatedEventOnUowCompleted(entity); EntityChangeEventHelper.TriggerEntityCreatedEventOnUowCompleted(entity);
EntityChangeEventHelper.TriggerEntityCreatingEvent(entity); EntityChangeEventHelper.TriggerEntityCreatingEvent(entity);
TriggerDomainEvents(entity); TriggerDomainEvents(entity);
@ -181,6 +185,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
protected virtual void ApplyAbpConceptsForUpdatedEntity(TEntity entity) protected virtual void ApplyAbpConceptsForUpdatedEntity(TEntity entity)
{ {
SetModificationAuditProperties(entity);
EntityChangeEventHelper.TriggerEntityUpdatedEventOnUowCompleted(entity); EntityChangeEventHelper.TriggerEntityUpdatedEventOnUowCompleted(entity);
EntityChangeEventHelper.TriggerEntityUpdatingEvent(entity); EntityChangeEventHelper.TriggerEntityUpdatingEvent(entity);
TriggerDomainEvents(entity); TriggerDomainEvents(entity);
@ -188,6 +193,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
private void ApplyAbpConceptsForDeletedEntity(TEntity entity) private void ApplyAbpConceptsForDeletedEntity(TEntity entity)
{ {
SetDeletionAuditProperties(entity);
EntityChangeEventHelper.TriggerEntityDeletedEventOnUowCompleted(entity); EntityChangeEventHelper.TriggerEntityDeletedEventOnUowCompleted(entity);
EntityChangeEventHelper.TriggerEntityDeletingEvent(entity); EntityChangeEventHelper.TriggerEntityDeletingEvent(entity);
TriggerDomainEvents(entity); TriggerDomainEvents(entity);
@ -201,6 +207,21 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
} }
} }
protected virtual void SetCreationAuditProperties(TEntity entity)
{
AuditPropertySetter.SetCreationProperties(entity);
}
protected virtual void SetModificationAuditProperties(TEntity entity)
{
AuditPropertySetter.SetModificationProperties(entity);
}
protected virtual void SetDeletionAuditProperties(TEntity entity)
{
AuditPropertySetter.SetDeletionProperties(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;

Loading…
Cancel
Save