Skip to content

Commit

Permalink
Merge pull request abpframework#11687 from abpframework/maliming/audit
Browse files Browse the repository at this point in the history
Handle possible exceptions in SaveChangesAsync method.
  • Loading branch information
realLiangshiwei authored Feb 24, 2022
2 parents b772a4a + dc4d41d commit f507c09
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,17 @@ public virtual async ValueTask<object> InvokeMethodAsync(HubInvocationContext in
var unitOfWorkManager = invocationContext.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
if (unitOfWorkManager.Current != null)
{
await unitOfWorkManager.Current.SaveChangesAsync();
try
{
await unitOfWorkManager.Current.SaveChangesAsync();
}
catch (Exception ex)
{
if (!auditingManager.Current.Log.Exceptions.Contains(ex))
{
auditingManager.Current.Log.Exceptions.Add(ex);
}
}
}

await saveHandle.SaveAsync();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,17 @@ public async Task InvokeAsync(HttpContext context, RequestDelegate next)
{
if (UnitOfWorkManager.Current != null)
{
await UnitOfWorkManager.Current.SaveChangesAsync();
try
{
await UnitOfWorkManager.Current.SaveChangesAsync();
}
catch (Exception ex)
{
if (!_auditingManager.Current.Log.Exceptions.Contains(ex))
{
_auditingManager.Current.Log.Exceptions.Add(ex);
}
}
}

await saveHandle.SaveAsync();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using Volo.Abp.Aspects;
using Volo.Abp.DependencyInjection;
using Volo.Abp.DynamicProxy;
using Volo.Abp.Uow;
using Volo.Abp.Users;

namespace Volo.Abp.Auditing;
Expand Down Expand Up @@ -41,7 +42,8 @@ public override async Task InterceptAsync(IAbpMethodInvocation invocation)
else
{
var currentUser = serviceScope.ServiceProvider.GetRequiredService<ICurrentUser>();
await ProcessWithNewAuditingScopeAsync(invocation, auditingOptions, currentUser, auditingManager, auditingHelper);
var unitOfWorkManager = serviceScope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
await ProcessWithNewAuditingScopeAsync(invocation, auditingOptions, currentUser, auditingManager, auditingHelper, unitOfWorkManager);
}
}
}
Expand Down Expand Up @@ -105,7 +107,8 @@ private async Task ProcessWithNewAuditingScopeAsync(
AbpAuditingOptions options,
ICurrentUser currentUser,
IAuditingManager auditingManager,
IAuditingHelper auditingHelper)
IAuditingHelper auditingHelper,
IUnitOfWorkManager unitOfWorkManager)
{
var hasError = false;
using (var saveHandle = auditingManager.BeginScope())
Expand All @@ -129,6 +132,21 @@ private async Task ProcessWithNewAuditingScopeAsync(
{
if (ShouldWriteAuditLog(invocation, options, currentUser, hasError))
{
if (unitOfWorkManager.Current != null)
{
try
{
await unitOfWorkManager.Current.SaveChangesAsync();
}
catch (Exception ex)
{
if (!auditingManager.Current.Log.Exceptions.Contains(ex))
{
auditingManager.Current.Log.Exceptions.Add(ex);
}
}
}

await saveHandle.SaveAsync();
}
}
Expand Down

0 comments on commit f507c09

Please sign in to comment.