Browse Source

Use IServiceProvider in Interceptors.

pull/6815/head
maliming 6 years ago
parent
commit
d3c4465121
  1. 19
      framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs
  2. 15
      framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptor.cs
  3. 16
      framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptor.cs
  4. 2
      framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptor.cs

19
framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs

@ -1,6 +1,7 @@
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Aspects;
using Volo.Abp.DependencyInjection;
using Volo.Abp.DynamicProxy;
@ -9,16 +10,14 @@ namespace Volo.Abp.Auditing
{
public class AuditingInterceptor : AbpInterceptor, ITransientDependency
{
private readonly IAuditingHelper _auditingHelper;
private readonly IAuditingManager _auditingManager;
private readonly IServiceProvider _serviceProvider;
public AuditingInterceptor(IAuditingHelper auditingHelper, IAuditingManager auditingManager)
public AuditingInterceptor(IServiceProvider serviceProvider)
{
_auditingHelper = auditingHelper;
_auditingManager = auditingManager;
_serviceProvider = serviceProvider;
}
public async override Task InterceptAsync(IAbpMethodInvocation invocation)
public override async Task InterceptAsync(IAbpMethodInvocation invocation)
{
if (!ShouldIntercept(invocation, out var auditLog, out var auditLogAction))
{
@ -58,19 +57,21 @@ namespace Volo.Abp.Auditing
return false;
}
var auditLogScope = _auditingManager.Current;
var auditingManager = _serviceProvider.GetRequiredService<IAuditingManager>();
var auditLogScope = auditingManager.Current;
if (auditLogScope == null)
{
return false;
}
if (!_auditingHelper.ShouldSaveAudit(invocation.Method))
var auditingHelper = _serviceProvider.GetRequiredService<IAuditingHelper>();
if (!auditingHelper.ShouldSaveAudit(invocation.Method))
{
return false;
}
auditLog = auditLogScope.Log;
auditLogAction = _auditingHelper.CreateAuditLogAction(
auditLogAction = auditingHelper.CreateAuditLogAction(
auditLog,
invocation.TargetObject.GetType(),
invocation.Method,

15
framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptor.cs

@ -1,4 +1,6 @@
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Aspects;
using Volo.Abp.DependencyInjection;
using Volo.Abp.DynamicProxy;
@ -7,15 +9,14 @@ namespace Volo.Abp.Features
{
public class FeatureInterceptor : AbpInterceptor, ITransientDependency
{
private readonly IMethodInvocationFeatureCheckerService _methodInvocationFeatureCheckerService;
private readonly IServiceProvider _serviceProvider;
public FeatureInterceptor(
IMethodInvocationFeatureCheckerService methodInvocationFeatureCheckerService)
public FeatureInterceptor(IServiceProvider serviceProvider)
{
_methodInvocationFeatureCheckerService = methodInvocationFeatureCheckerService;
_serviceProvider = serviceProvider;
}
public async override Task InterceptAsync(IAbpMethodInvocation invocation)
public override async Task InterceptAsync(IAbpMethodInvocation invocation)
{
if (AbpCrossCuttingConcerns.IsApplied(invocation.TargetObject, AbpCrossCuttingConcerns.FeatureChecking))
{
@ -29,7 +30,7 @@ namespace Volo.Abp.Features
protected virtual async Task CheckFeaturesAsync(IAbpMethodInvocation invocation)
{
await _methodInvocationFeatureCheckerService.CheckAsync(
await _serviceProvider.GetRequiredService<IMethodInvocationFeatureCheckerService>().CheckAsync(
new MethodInvocationFeatureCheckerContext(
invocation.Method
)

16
framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptor.cs

@ -1,6 +1,7 @@
using System;
using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
using Volo.Abp.DynamicProxy;
@ -9,16 +10,14 @@ namespace Volo.Abp.Uow
{
public class UnitOfWorkInterceptor : AbpInterceptor, ITransientDependency
{
private readonly IUnitOfWorkManager _unitOfWorkManager;
private readonly AbpUnitOfWorkDefaultOptions _defaultOptions;
private readonly IServiceProvider _serviceProvider;
public UnitOfWorkInterceptor(IUnitOfWorkManager unitOfWorkManager, IOptions<AbpUnitOfWorkDefaultOptions> options)
public UnitOfWorkInterceptor(IServiceProvider serviceProvider)
{
_unitOfWorkManager = unitOfWorkManager;
_defaultOptions = options.Value;
_serviceProvider = serviceProvider;
}
public async override Task InterceptAsync(IAbpMethodInvocation invocation)
public override async Task InterceptAsync(IAbpMethodInvocation invocation)
{
if (!UnitOfWorkHelper.IsUnitOfWorkMethod(invocation.Method, out var unitOfWorkAttribute))
{
@ -26,7 +25,7 @@ namespace Volo.Abp.Uow
return;
}
using (var uow = _unitOfWorkManager.Begin(CreateOptions(invocation, unitOfWorkAttribute)))
using (var uow = _serviceProvider.GetRequiredService<IUnitOfWorkManager>().Begin(CreateOptions(invocation, unitOfWorkAttribute)))
{
await invocation.ProceedAsync();
await uow.CompleteAsync();
@ -41,7 +40,8 @@ namespace Volo.Abp.Uow
if (unitOfWorkAttribute?.IsTransactional == null)
{
options.IsTransactional = _defaultOptions.CalculateIsTransactional(
var defaultOptions = _serviceProvider.GetRequiredService<IOptions<AbpUnitOfWorkDefaultOptions>>().Value;
options.IsTransactional = defaultOptions.CalculateIsTransactional(
autoValue: !invocation.Method.Name.StartsWith("Get", StringComparison.InvariantCultureIgnoreCase)
);
}

2
framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptor.cs

@ -13,7 +13,7 @@ namespace Volo.Abp.Validation
_methodInvocationValidator = methodInvocationValidator;
}
public async override Task InterceptAsync(IAbpMethodInvocation invocation)
public override async Task InterceptAsync(IAbpMethodInvocation invocation)
{
Validate(invocation);
await invocation.ProceedAsync();

Loading…
Cancel
Save