Merge pull request #11859 from abpframework/auto-merge/rel-5-1/907

Merge branch rel-5.2 with rel-5.1
pull/11860/head
liangshiwei 4 years ago committed by GitHub
commit 388b0d3e2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -10,7 +10,6 @@ using Microsoft.Extensions.Options;
using Volo.Abp.AspNetCore.Auditing;
using Volo.Abp.AspNetCore.SignalR.Auditing;
using Volo.Abp.AspNetCore.SignalR.Authentication;
using Volo.Abp.AspNetCore.SignalR.Uow;
using Volo.Abp.Auditing;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Modularity;
@ -40,7 +39,6 @@ public class AbpAspNetCoreSignalRModule : AbpModule
{
options.AddFilter<AbpHubContextAccessorHubFilter>();
options.AddFilter<AbpAuthenticationHubFilter>();
options.AddFilter<AbpUowHubFilter>();
options.AddFilter<AbpAuditHubFilter>();
});

@ -1,42 +0,0 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.Uow;
namespace Volo.Abp.AspNetCore.SignalR.Uow;
public class AbpUowHubFilter : IHubFilter
{
public virtual async ValueTask<object> InvokeMethodAsync(HubInvocationContext invocationContext, Func<HubInvocationContext, ValueTask<object>> next)
{
object result = null;
var options = await CreateOptionsAsync(invocationContext);
var unitOfWorkManager = invocationContext.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
using (var uow = unitOfWorkManager.Begin(options))
{
result = await next(invocationContext);
await uow.CompleteAsync();
}
return result;
}
private async Task<AbpUnitOfWorkOptions> CreateOptionsAsync(HubInvocationContext invocationContext)
{
var options = new AbpUnitOfWorkOptions();
var defaultOptions = invocationContext.ServiceProvider.GetRequiredService<IOptions<AbpUnitOfWorkDefaultOptions>>().Value;
var uowHubFilterOptions = invocationContext.ServiceProvider.GetRequiredService<IOptions<AbpUowHubFilterOptions>>().Value;
options.IsTransactional = defaultOptions.CalculateIsTransactional(
autoValue: invocationContext.ServiceProvider.GetRequiredService<IUnitOfWorkTransactionBehaviourProvider>().IsTransactional
?? await uowHubFilterOptions.IsTransactional(invocationContext)
);
return options;
}
}

@ -1,15 +0,0 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.SignalR;
namespace Volo.Abp.AspNetCore.SignalR.Uow;
public class AbpUowHubFilterOptions
{
public Func<HubInvocationContext, Task<bool>> IsTransactional { get; set; }
public AbpUowHubFilterOptions()
{
IsTransactional = context => Task.FromResult<bool>(true);
}
}
Loading…
Cancel
Save