diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingManager.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingManager.cs index fca0a8dd8e..d314d31799 100644 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingManager.cs +++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingManager.cs @@ -147,7 +147,6 @@ namespace Volo.Abp.Auditing private readonly AuditingManager _auditingManager; private readonly IDisposable _scope; - private bool _saved; public DisposableSaveHandle( AuditingManager auditingManager, @@ -163,23 +162,16 @@ namespace Volo.Abp.Auditing public async Task SaveAsync() { - _saved = true; await _auditingManager.SaveAsync(this); } public void Save() { - _saved = true; _auditingManager.Save(this); } public void Dispose() { - if (!_saved) - { - Save(); - } - _scope.Dispose(); } } diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingStoreExtensions.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingStoreExtensions.cs deleted file mode 100644 index f08dcc14b6..0000000000 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingStoreExtensions.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Volo.Abp.Threading; - -namespace Volo.Abp.Auditing -{ - public static class AuditingStoreExtensions - { - public static void Save(this IAuditingStore auditingStore, AuditLogInfo auditInfo) - { - AsyncHelper.RunSync(() => auditingStore.SaveAsync(auditInfo)); - } - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/IAuditingStore.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/IAuditingStore.cs index 7166af642b..101ec8b03e 100644 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/IAuditingStore.cs +++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/IAuditingStore.cs @@ -4,6 +4,8 @@ namespace Volo.Abp.Auditing { public interface IAuditingStore { + void Save(AuditLogInfo auditInfo); + Task SaveAsync(AuditLogInfo auditInfo); } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/SimpleLogAuditingStore.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/SimpleLogAuditingStore.cs index 4c0450d565..8067ede5c5 100644 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/SimpleLogAuditingStore.cs +++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/SimpleLogAuditingStore.cs @@ -15,10 +15,14 @@ namespace Volo.Abp.Auditing Logger = NullLogger.Instance; } - public Task SaveAsync(AuditLogInfo auditInfo) + public void Save(AuditLogInfo auditInfo) { Logger.LogInformation(auditInfo.ToString()); + } + public Task SaveAsync(AuditLogInfo auditInfo) + { + Save(auditInfo); return Task.FromResult(0); } } diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditingStore.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditingStore.cs index ecb07300f0..7bbd51af12 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditingStore.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditingStore.cs @@ -33,15 +33,33 @@ namespace Volo.Abp.AuditLogging Logger = NullLogger.Instance; } - private async Task SaveLogAsync(AuditLogInfo auditInfo) + public void Save(AuditLogInfo auditInfo) { - using (var uow = _unitOfWorkManager.Begin(requiresNew: true)) + if (!Options.HideErrors) { - var auditLog = new AuditLog(_guidGenerator, auditInfo); - await _auditLogRepository.InsertAsync(auditLog); - await uow.SaveChangesAsync(); + SaveLog(auditInfo); + return; + } + + try + { + SaveLog(auditInfo); + } + catch (Exception ex) + { + Logger.LogException(ex, LogLevel.Error); } } + + protected virtual void SaveLog(AuditLogInfo auditInfo) + { + using (var uow = _unitOfWorkManager.Begin(true)) + { + _auditLogRepository.Insert(new AuditLog(_guidGenerator, auditInfo)); + uow.SaveChanges(); + } + } + public async Task SaveAsync(AuditLogInfo auditInfo) { if (!Options.HideErrors) @@ -59,5 +77,14 @@ namespace Volo.Abp.AuditLogging Logger.LogException(ex, LogLevel.Error); } } + + protected virtual async Task SaveLogAsync(AuditLogInfo auditInfo) + { + using (var uow = _unitOfWorkManager.Begin(true)) + { + await _auditLogRepository.InsertAsync(new AuditLog(_guidGenerator, auditInfo)); + await uow.SaveChangesAsync(); + } + } } }