|
|
|
@ -22,7 +22,6 @@ using Volo.Abp.EntityFrameworkCore.ValueConverters; |
|
|
|
using Volo.Abp.Guids; |
|
|
|
using Volo.Abp.MultiTenancy; |
|
|
|
using Volo.Abp.Reflection; |
|
|
|
using Volo.Abp.Threading; |
|
|
|
using Volo.Abp.Timing; |
|
|
|
|
|
|
|
namespace Volo.Abp.EntityFrameworkCore |
|
|
|
@ -92,46 +91,7 @@ namespace Volo.Abp.EntityFrameworkCore |
|
|
|
.Invoke(this, new object[] { modelBuilder, entityType }); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public override int SaveChanges(bool acceptAllChangesOnSuccess) |
|
|
|
{ |
|
|
|
//TODO: Reduce duplications with SaveChangesAsync
|
|
|
|
//TODO: Instead of adding entity changes to audit log, write them to uow and add to audit log only if uow succeed
|
|
|
|
|
|
|
|
try |
|
|
|
{ |
|
|
|
var auditLog = AuditingManager?.Current?.Log; |
|
|
|
|
|
|
|
List<EntityChangeInfo> entityChangeList = null; |
|
|
|
if (auditLog != null) |
|
|
|
{ |
|
|
|
entityChangeList = EntityHistoryHelper.CreateChangeList(ChangeTracker.Entries().ToList()); |
|
|
|
} |
|
|
|
|
|
|
|
var changeReport = ApplyAbpConcepts(); |
|
|
|
|
|
|
|
var result = base.SaveChanges(acceptAllChangesOnSuccess); |
|
|
|
|
|
|
|
AsyncHelper.RunSync(() => EntityChangeEventHelper.TriggerEventsAsync(changeReport)); |
|
|
|
|
|
|
|
if (auditLog != null) |
|
|
|
{ |
|
|
|
EntityHistoryHelper.UpdateChangeList(entityChangeList); |
|
|
|
auditLog.EntityChanges.AddRange(entityChangeList); |
|
|
|
} |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
catch (DbUpdateConcurrencyException ex) |
|
|
|
{ |
|
|
|
throw new AbpDbConcurrencyException(ex.Message, ex); |
|
|
|
} |
|
|
|
finally |
|
|
|
{ |
|
|
|
ChangeTracker.AutoDetectChangesEnabled = true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public override async Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default) |
|
|
|
{ |
|
|
|
try |
|
|
|
|