Browse Source

GDPR: Remove event bus dependency from the abstraction package

pull/12353/head
Engincan VESKE 5 years ago
parent
commit
f946d1136d
  1. 2
      framework/src/Volo.Abp.Gdpr.Abstractions/Volo.Abp.Gdpr.Abstractions.csproj
  2. 4
      framework/src/Volo.Abp.Gdpr.Abstractions/Volo/Abp/Gdpr/AbpGdprAbstractionsModule.cs
  3. 8
      framework/src/Volo.Abp.Gdpr.Abstractions/Volo/Abp/Gdpr/GdprUserDataProviderBase.cs
  4. 41
      framework/src/Volo.Abp.Gdpr.Abstractions/Volo/Abp/Gdpr/GdprUserDataRequestEventHandler.cs
  5. 8
      framework/src/Volo.Abp.Gdpr.Abstractions/Volo/Abp/Gdpr/IGdprUserDataProvider.cs

2
framework/src/Volo.Abp.Gdpr.Abstractions/Volo.Abp.Gdpr.Abstractions.csproj

@ -9,7 +9,7 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Abp.EventBus\Volo.Abp.EventBus.csproj" />
<ProjectReference Include="..\Volo.Abp.Core\Volo.Abp.Core.csproj" />
</ItemGroup>
</Project>

4
framework/src/Volo.Abp.Gdpr.Abstractions/Volo/Abp/Gdpr/AbpGdprAbstractionsModule.cs

@ -1,9 +1,7 @@
using Volo.Abp.EventBus;
using Volo.Abp.Modularity;
using Volo.Abp.Modularity;
namespace Volo.Abp.Gdpr;
[DependsOn(typeof(AbpEventBusModule))]
public class AbpGdprAbstractionsModule : AbpModule
{
}

8
framework/src/Volo.Abp.Gdpr.Abstractions/Volo/Abp/Gdpr/GdprUserDataProviderBase.cs

@ -1,8 +0,0 @@
using System.Threading.Tasks;
namespace Volo.Abp.Gdpr;
public abstract class GdprUserDataProviderBase : IGdprUserDataProvider
{
public abstract Task<GdprDataInfo> GetAsync(GdprUserDataProviderContext context);
}

41
framework/src/Volo.Abp.Gdpr.Abstractions/Volo/Abp/Gdpr/GdprUserDataRequestEventHandler.cs

@ -1,41 +0,0 @@
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.DependencyInjection;
using Volo.Abp.EventBus.Distributed;
namespace Volo.Abp.Gdpr;
public class GdprUserDataRequestEventHandler
: IDistributedEventHandler<GdprUserDataRequestedEto>, ITransientDependency
{
protected IServiceScopeFactory ServiceScopeFactory { get; }
protected IDistributedEventBus EventBus { get; }
public GdprUserDataRequestEventHandler(IServiceScopeFactory serviceScopeFactory, IDistributedEventBus eventBus)
{
ServiceScopeFactory = serviceScopeFactory;
EventBus = eventBus;
}
public async Task HandleEventAsync(GdprUserDataRequestedEto eventData)
{
using (var scope = ServiceScopeFactory.CreateScope())
{
var gdprDataProviders = scope.ServiceProvider.GetServices<IGdprUserDataProvider>().ToList();
foreach (var gdprDataProvider in gdprDataProviders)
{
var gdprDataInfo = await gdprDataProvider.GetAsync(new GdprUserDataProviderContext { UserId = eventData.UserId});
await EventBus.PublishAsync(
new GdprUserDataPreparedEto
{
RequestId = eventData.RequestId,
Data = gdprDataInfo,
Provider = gdprDataProvider.GetType().FullName
});
}
}
}
}

8
framework/src/Volo.Abp.Gdpr.Abstractions/Volo/Abp/Gdpr/IGdprUserDataProvider.cs

@ -1,8 +0,0 @@
using System.Threading.Tasks;
namespace Volo.Abp.Gdpr;
public interface IGdprUserDataProvider
{
Task<GdprDataInfo> GetAsync(GdprUserDataProviderContext context);
}
Loading…
Cancel
Save