|
|
|
@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Http;
|
|
|
|
|
using Microsoft.Extensions.Options;
|
|
|
|
|
using Volo.Abp.Auditing;
|
|
|
|
|
using Volo.Abp.DependencyInjection;
|
|
|
|
|
using Volo.Abp.Uow;
|
|
|
|
|
using Volo.Abp.Users;
|
|
|
|
|
|
|
|
|
|
namespace Volo.Abp.AspNetCore.Auditing
|
|
|
|
@ -16,16 +17,19 @@ namespace Volo.Abp.AspNetCore.Auditing
|
|
|
|
|
protected AbpAuditingOptions AuditingOptions { get; }
|
|
|
|
|
protected AbpAspNetCoreAuditingOptions AspNetCoreAuditingOptions { get; }
|
|
|
|
|
protected ICurrentUser CurrentUser { get; }
|
|
|
|
|
protected IUnitOfWorkManager UnitOfWorkManager { get; }
|
|
|
|
|
|
|
|
|
|
public AbpAuditingMiddleware(
|
|
|
|
|
IAuditingManager auditingManager,
|
|
|
|
|
ICurrentUser currentUser,
|
|
|
|
|
IOptions<AbpAuditingOptions> auditingOptions,
|
|
|
|
|
IOptions<AbpAspNetCoreAuditingOptions> aspNetCoreAuditingOptions)
|
|
|
|
|
IOptions<AbpAspNetCoreAuditingOptions> aspNetCoreAuditingOptions,
|
|
|
|
|
IUnitOfWorkManager unitOfWorkManager)
|
|
|
|
|
{
|
|
|
|
|
_auditingManager = auditingManager;
|
|
|
|
|
|
|
|
|
|
CurrentUser = currentUser;
|
|
|
|
|
UnitOfWorkManager = unitOfWorkManager;
|
|
|
|
|
AuditingOptions = auditingOptions.Value;
|
|
|
|
|
AspNetCoreAuditingOptions = aspNetCoreAuditingOptions.Value;
|
|
|
|
|
}
|
|
|
|
@ -44,7 +48,7 @@ namespace Volo.Abp.AspNetCore.Auditing
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await next(context);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Debug.Assert(_auditingManager.Current != null);
|
|
|
|
|
if (_auditingManager.Current.Log.Exceptions.Any())
|
|
|
|
|
{
|
|
|
|
@ -60,6 +64,11 @@ namespace Volo.Abp.AspNetCore.Auditing
|
|
|
|
|
{
|
|
|
|
|
if (ShouldWriteAuditLog(context, hasError))
|
|
|
|
|
{
|
|
|
|
|
if (UnitOfWorkManager.Current != null)
|
|
|
|
|
{
|
|
|
|
|
await UnitOfWorkManager.Current.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await saveHandle.SaveAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|