Browse Source

Extract AspNetCoreUnitOfWorkTransactionBehaviourProviderOptions.

pull/6809/head
Halil İbrahim Kalkan 6 years ago
parent
commit
95b7b0693b
  1. 19
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AspNetCoreUnitOfWorkTransactionBehaviourProvider.cs
  2. 17
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AspNetCoreUnitOfWorkTransactionBehaviourProviderOptions.cs

19
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AspNetCoreUnitOfWorkTransactionBehaviourProvider.cs

@ -1,6 +1,7 @@
using System;
using System.Net.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Uow;
@ -9,6 +10,7 @@ namespace Volo.Abp.AspNetCore.Uow
public class AspNetCoreUnitOfWorkTransactionBehaviourProvider : IUnitOfWorkTransactionBehaviourProvider, ISingletonDependency
{
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly AspNetCoreUnitOfWorkTransactionBehaviourProviderOptions _options;
public virtual bool? IsTransactional
{
@ -20,10 +22,16 @@ namespace Volo.Abp.AspNetCore.Uow
return null;
}
//IdentityServer endpoint (TODO: Better to move to the IDS module)
if (httpContext.Request.Path.Value?.StartsWith("/connect/", StringComparison.OrdinalIgnoreCase) == true)
var currentUrl = httpContext.Request.Path.Value;
if (currentUrl != null)
{
return false;
foreach (var url in _options.NonTransactionalUrls)
{
if (currentUrl.StartsWith(url, StringComparison.OrdinalIgnoreCase))
{
return false;
}
}
}
return !string.Equals(
@ -33,9 +41,12 @@ namespace Volo.Abp.AspNetCore.Uow
}
}
public AspNetCoreUnitOfWorkTransactionBehaviourProvider(IHttpContextAccessor httpContextAccessor)
public AspNetCoreUnitOfWorkTransactionBehaviourProvider(
IHttpContextAccessor httpContextAccessor,
IOptions<AspNetCoreUnitOfWorkTransactionBehaviourProviderOptions> options)
{
_httpContextAccessor = httpContextAccessor;
_options = options.Value;
}
}
}

17
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AspNetCoreUnitOfWorkTransactionBehaviourProviderOptions.cs

@ -0,0 +1,17 @@
using System.Collections.Generic;
namespace Volo.Abp.AspNetCore.Uow
{
public class AspNetCoreUnitOfWorkTransactionBehaviourProviderOptions
{
public List<string> NonTransactionalUrls { get; }
public AspNetCoreUnitOfWorkTransactionBehaviourProviderOptions()
{
NonTransactionalUrls = new List<string>
{
"/connect/"
};
}
}
}
Loading…
Cancel
Save