diff --git a/Volo.Abp.sln b/Volo.Abp.sln index 395adb5dab..2354e26105 100644 --- a/Volo.Abp.sln +++ b/Volo.Abp.sln @@ -168,7 +168,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Auditing.Tests", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MongoDB.Tests", "test\Volo.Abp.MongoDB.Tests\Volo.Abp.MongoDB.Tests.csproj", "{82ED4DD2-DEF8-40D5-9BF9-663AFD35B06D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EntityFrameworkCore.SqlServer", "src\Volo.Abp.EntityFrameworkCore.SqlServer\Volo.Abp.EntityFrameworkCore.SqlServer.csproj", "{6EABA98D-0B71-4ED7-A939-AFDA106D1151}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.EntityFrameworkCore.SqlServer", "src\Volo.Abp.EntityFrameworkCore.SqlServer\Volo.Abp.EntityFrameworkCore.SqlServer.csproj", "{6EABA98D-0B71-4ED7-A939-AFDA106D1151}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EventBus.Distributed", "src\Volo.Abp.EventBus.Distributed\Volo.Abp.EventBus.Distributed.csproj", "{CFC98B88-8CCC-469B-8D60-482D3C94A690}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EventBus.Distributed.RabbitMQ", "src\Volo.Abp.EventBus.Distributed.RabbitMQ\Volo.Abp.EventBus.Distributed.RabbitMQ.csproj", "{468C3DCB-8C00-40E7-AE51-0738EAAB312A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EventBus.Distributed.Tests", "test\Volo.Abp.EventBus.Distributed.Tests\Volo.Abp.EventBus.Distributed.Tests.csproj", "{0AE814CE-E155-4259-8746-262D174AB510}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -472,6 +478,18 @@ Global {6EABA98D-0B71-4ED7-A939-AFDA106D1151}.Debug|Any CPU.Build.0 = Debug|Any CPU {6EABA98D-0B71-4ED7-A939-AFDA106D1151}.Release|Any CPU.ActiveCfg = Release|Any CPU {6EABA98D-0B71-4ED7-A939-AFDA106D1151}.Release|Any CPU.Build.0 = Release|Any CPU + {CFC98B88-8CCC-469B-8D60-482D3C94A690}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFC98B88-8CCC-469B-8D60-482D3C94A690}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFC98B88-8CCC-469B-8D60-482D3C94A690}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFC98B88-8CCC-469B-8D60-482D3C94A690}.Release|Any CPU.Build.0 = Release|Any CPU + {468C3DCB-8C00-40E7-AE51-0738EAAB312A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {468C3DCB-8C00-40E7-AE51-0738EAAB312A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {468C3DCB-8C00-40E7-AE51-0738EAAB312A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {468C3DCB-8C00-40E7-AE51-0738EAAB312A}.Release|Any CPU.Build.0 = Release|Any CPU + {0AE814CE-E155-4259-8746-262D174AB510}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AE814CE-E155-4259-8746-262D174AB510}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AE814CE-E155-4259-8746-262D174AB510}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AE814CE-E155-4259-8746-262D174AB510}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -553,6 +571,9 @@ Global {D5733D90-8C3D-4026-85E2-41DED26C4938} = {447C8A77-E5F0-4538-8687-7383196D04EA} {82ED4DD2-DEF8-40D5-9BF9-663AFD35B06D} = {447C8A77-E5F0-4538-8687-7383196D04EA} {6EABA98D-0B71-4ED7-A939-AFDA106D1151} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} + {CFC98B88-8CCC-469B-8D60-482D3C94A690} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} + {468C3DCB-8C00-40E7-AE51-0738EAAB312A} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} + {0AE814CE-E155-4259-8746-262D174AB510} = {447C8A77-E5F0-4538-8687-7383196D04EA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5} diff --git a/src/Volo.Abp.EventBus.Distributed.RabbitMQ/Volo.Abp.EventBus.Distributed.RabbitMQ.csproj b/src/Volo.Abp.EventBus.Distributed.RabbitMQ/Volo.Abp.EventBus.Distributed.RabbitMQ.csproj new file mode 100644 index 0000000000..05c0ab151a --- /dev/null +++ b/src/Volo.Abp.EventBus.Distributed.RabbitMQ/Volo.Abp.EventBus.Distributed.RabbitMQ.csproj @@ -0,0 +1,20 @@ + + + + + + netstandard2.0 + Volo.Abp.EventBus.Distributed.RabbitMQ + Volo.Abp.EventBus.Distributed.RabbitMQ + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + diff --git a/src/Volo.Abp.EventBus.Distributed.RabbitMQ/Volo/Abp/EventBus/Distributed/RabbitMq/AbpRabbitMqDistributedEventBusModule.cs b/src/Volo.Abp.EventBus.Distributed.RabbitMQ/Volo/Abp/EventBus/Distributed/RabbitMq/AbpRabbitMqDistributedEventBusModule.cs new file mode 100644 index 0000000000..753438a5b0 --- /dev/null +++ b/src/Volo.Abp.EventBus.Distributed.RabbitMQ/Volo/Abp/EventBus/Distributed/RabbitMq/AbpRabbitMqDistributedEventBusModule.cs @@ -0,0 +1,14 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; + +namespace Volo.Abp.EventBus.Distributed.RabbitMq +{ + [DependsOn(typeof(AbpDistributedEventBusModule))] + public class AbpRabbitMqDistributedEventBusModule : AbpModule + { + public override void ConfigureServices(IServiceCollection services) + { + services.AddAssemblyOf(); + } + } +} diff --git a/src/Volo.Abp.EventBus.Distributed.RabbitMQ/Volo/Abp/EventBus/Distributed/RabbitMq/RabbitMqDistributedEventBus.cs b/src/Volo.Abp.EventBus.Distributed.RabbitMQ/Volo/Abp/EventBus/Distributed/RabbitMq/RabbitMqDistributedEventBus.cs new file mode 100644 index 0000000000..68131b3ab8 --- /dev/null +++ b/src/Volo.Abp.EventBus.Distributed.RabbitMQ/Volo/Abp/EventBus/Distributed/RabbitMq/RabbitMqDistributedEventBus.cs @@ -0,0 +1,20 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.EventBus.Distributed.RabbitMq +{ + public class RabbitMqDistributedEventBus : IDistributedEventBus, ITransientDependency + { + public Task PublishAsync(TEvent eventData) + where TEvent : class + { + throw new NotImplementedException(); + } + + public Task PublishAsync(Type eventType, object eventData) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.EventBus.Distributed/Volo.Abp.EventBus.Distributed.csproj b/src/Volo.Abp.EventBus.Distributed/Volo.Abp.EventBus.Distributed.csproj new file mode 100644 index 0000000000..5ad5d3eb57 --- /dev/null +++ b/src/Volo.Abp.EventBus.Distributed/Volo.Abp.EventBus.Distributed.csproj @@ -0,0 +1,20 @@ + + + + + + netstandard2.0 + Volo.Abp.EventBus.Distributed + Volo.Abp.EventBus.Distributed + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + diff --git a/src/Volo.Abp.EventBus.Distributed/Volo/Abp/EventBus/Distributed/AbpDistributedEventBusModule.cs b/src/Volo.Abp.EventBus.Distributed/Volo/Abp/EventBus/Distributed/AbpDistributedEventBusModule.cs new file mode 100644 index 0000000000..0494913d12 --- /dev/null +++ b/src/Volo.Abp.EventBus.Distributed/Volo/Abp/EventBus/Distributed/AbpDistributedEventBusModule.cs @@ -0,0 +1,14 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; + +namespace Volo.Abp.EventBus.Distributed +{ + [DependsOn(typeof(AbpEventBusModule))] + public class AbpDistributedEventBusModule : AbpModule + { + public override void ConfigureServices(IServiceCollection services) + { + services.AddAssemblyOf(); + } + } +} diff --git a/src/Volo.Abp.EventBus.Distributed/Volo/Abp/EventBus/Distributed/IDistributedEventBus.cs b/src/Volo.Abp.EventBus.Distributed/Volo/Abp/EventBus/Distributed/IDistributedEventBus.cs new file mode 100644 index 0000000000..49f50b24c5 --- /dev/null +++ b/src/Volo.Abp.EventBus.Distributed/Volo/Abp/EventBus/Distributed/IDistributedEventBus.cs @@ -0,0 +1,13 @@ +using System; +using System.Threading.Tasks; + +namespace Volo.Abp.EventBus.Distributed +{ + public interface IDistributedEventBus + { + Task PublishAsync(TEvent eventData) + where TEvent : class; + + Task PublishAsync(Type eventType, object eventData); + } +} diff --git a/src/Volo.Abp.EventBus.Distributed/Volo/Abp/EventBus/Distributed/LocalDistributedEventBus.cs b/src/Volo.Abp.EventBus.Distributed/Volo/Abp/EventBus/Distributed/LocalDistributedEventBus.cs new file mode 100644 index 0000000000..58b6aa20e2 --- /dev/null +++ b/src/Volo.Abp.EventBus.Distributed/Volo/Abp/EventBus/Distributed/LocalDistributedEventBus.cs @@ -0,0 +1,27 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.EventBus.Distributed +{ + public class LocalDistributedEventBus : IDistributedEventBus, ITransientDependency + { + private readonly IEventBus _eventBus; + + public LocalDistributedEventBus(IEventBus eventBus) + { + _eventBus = eventBus; + } + + public Task PublishAsync(TEvent eventData) + where TEvent : class + { + return _eventBus.TriggerAsync(eventData); + } + + public Task PublishAsync(Type eventType, object eventData) + { + return _eventBus.TriggerAsync(eventType, eventData); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.EventBus/Volo/Abp/EventBus/IDistributedEventBus.cs b/src/Volo.Abp.EventBus/Volo/Abp/EventBus/IDistributedEventBus.cs deleted file mode 100644 index 4b81b1ee4a..0000000000 --- a/src/Volo.Abp.EventBus/Volo/Abp/EventBus/IDistributedEventBus.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Volo.Abp.EventBus -{ - public interface IDistributedEventBus - { - - } -} diff --git a/test/Volo.Abp.EventBus.Distributed.Tests/Volo.Abp.EventBus.Distributed.Tests.csproj b/test/Volo.Abp.EventBus.Distributed.Tests/Volo.Abp.EventBus.Distributed.Tests.csproj new file mode 100644 index 0000000000..c97c0b6be0 --- /dev/null +++ b/test/Volo.Abp.EventBus.Distributed.Tests/Volo.Abp.EventBus.Distributed.Tests.csproj @@ -0,0 +1,24 @@ + + + + netcoreapp2.0 + latest + Volo.Abp.EventBus.Distributed.Tests + Volo.Abp.EventBus.Distributed.Tests + true + false + false + false + + + + + + + + + + + + +