diff --git a/.nuget/NuGet.Config b/.nuget/NuGet.Config new file mode 100644 index 0000000..67f8ea0 --- /dev/null +++ b/.nuget/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.nuget/NuGet.exe b/.nuget/NuGet.exe new file mode 100644 index 0000000..8dd7e45 Binary files /dev/null and b/.nuget/NuGet.exe differ diff --git a/.nuget/NuGet.targets b/.nuget/NuGet.targets new file mode 100644 index 0000000..3f8c37b --- /dev/null +++ b/.nuget/NuGet.targets @@ -0,0 +1,144 @@ + + + + $(MSBuildProjectDirectory)\..\ + + + false + + + false + + + true + + + false + + + + + + + + + + + $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) + + + + + $(SolutionDir).nuget + + + + $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName.Replace(' ', '_')).config + $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config + + + + $(MSBuildProjectDirectory)\packages.config + $(PackagesProjectConfig) + + + + + $(NuGetToolsPath)\NuGet.exe + @(PackageSource) + + "$(NuGetExePath)" + mono --runtime=v4.0.30319 "$(NuGetExePath)" + + $(TargetDir.Trim('\\')) + + -RequireConsent + -NonInteractive + + "$(SolutionDir) " + "$(SolutionDir)" + + + $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir) + $(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols + + + + RestorePackages; + $(BuildDependsOn); + + + + + $(BuildDependsOn); + BuildPackage; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AzureNetQ.Tests.Messages/AzureNetQ.Tests.Messages.csproj b/AzureNetQ.Tests.Messages/AzureNetQ.Tests.Messages.csproj index b16f5b8..ca6d120 100644 --- a/AzureNetQ.Tests.Messages/AzureNetQ.Tests.Messages.csproj +++ b/AzureNetQ.Tests.Messages/AzureNetQ.Tests.Messages.csproj @@ -9,7 +9,7 @@ Properties AzureNetQ.Tests.Messages AzureNetQ.Tests.Messages - v4.0 + v4.5 512 @@ -21,6 +21,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -29,6 +30,7 @@ TRACE prompt 4 + false true @@ -38,6 +40,7 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false diff --git a/AzureNetQ.Tests.PublishSubscribe/App.config b/AzureNetQ.Tests.PublishSubscribe/App.config index 74ade9d..d1428ad 100644 --- a/AzureNetQ.Tests.PublishSubscribe/App.config +++ b/AzureNetQ.Tests.PublishSubscribe/App.config @@ -1,6 +1,6 @@ - + diff --git a/AzureNetQ.Tests.PublishSubscribe/AzureNetQ.Tests.PublishSubscribe.csproj b/AzureNetQ.Tests.PublishSubscribe/AzureNetQ.Tests.PublishSubscribe.csproj index b70da06..95cba44 100644 --- a/AzureNetQ.Tests.PublishSubscribe/AzureNetQ.Tests.PublishSubscribe.csproj +++ b/AzureNetQ.Tests.PublishSubscribe/AzureNetQ.Tests.PublishSubscribe.csproj @@ -9,7 +9,7 @@ Properties AzureNetQ.Tests.PublishSubscribe AzureNetQ.Tests.PublishSubscribe - v4.0 + v4.5 512 @@ -22,6 +22,7 @@ DEBUG;TRACE prompt 4 + false AnyCPU @@ -31,6 +32,7 @@ TRACE prompt 4 + false diff --git a/AzureNetQ.Tests.PublishSubscribe/Program.cs b/AzureNetQ.Tests.PublishSubscribe/Program.cs index d5f0bab..7d130d9 100644 --- a/AzureNetQ.Tests.PublishSubscribe/Program.cs +++ b/AzureNetQ.Tests.PublishSubscribe/Program.cs @@ -1,10 +1,9 @@ namespace AzureNetQ.Tests.PublishSubscribe { + using AzureNetQ.NonGeneric; using System; using System.Threading.Tasks; - using AzureNetQ.NonGeneric; - public class Program { private IBus bus; @@ -21,7 +20,7 @@ private void Run() this.bus.SubscribeAsync( typeof(TestMessage), obj => Task.Factory.StartNew(() => Console.WriteLine("Handler Received message: {0}", ((TestMessage)obj).Text))); - + Console.WriteLine("Type a message or 'q' to quit."); string text = null; @@ -32,7 +31,8 @@ private void Run() new TestMessage { Text = text - }); + }, + DateTime.Now.AddMinutes(1)); } this.bus.Dispose(); diff --git a/AzureNetQ.Tests.SimpleRequester/AzureNetQ.Tests.SimpleRequester.csproj b/AzureNetQ.Tests.SimpleRequester/AzureNetQ.Tests.SimpleRequester.csproj index d02ea1c..56f104c 100644 --- a/AzureNetQ.Tests.SimpleRequester/AzureNetQ.Tests.SimpleRequester.csproj +++ b/AzureNetQ.Tests.SimpleRequester/AzureNetQ.Tests.SimpleRequester.csproj @@ -10,7 +10,7 @@ Properties AzureNetQ.Tests.SimpleRequester AzureNetQ.Tests.SimpleRequester - v4.0 + v4.5 512 @@ -23,6 +23,7 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false bin\Release\ @@ -32,6 +33,7 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false true @@ -41,6 +43,7 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false diff --git a/AzureNetQ.Tests.SimpleRequester/app.config b/AzureNetQ.Tests.SimpleRequester/app.config index e857a98..b678d0a 100644 --- a/AzureNetQ.Tests.SimpleRequester/app.config +++ b/AzureNetQ.Tests.SimpleRequester/app.config @@ -1,10 +1,9 @@ - + - + diff --git a/AzureNetQ.Tests.SimpleService/AzureNetQ.Tests.SimpleService.csproj b/AzureNetQ.Tests.SimpleService/AzureNetQ.Tests.SimpleService.csproj index d674cad..35a2264 100644 --- a/AzureNetQ.Tests.SimpleService/AzureNetQ.Tests.SimpleService.csproj +++ b/AzureNetQ.Tests.SimpleService/AzureNetQ.Tests.SimpleService.csproj @@ -10,7 +10,7 @@ Properties AzureNetQ.Tests.SimpleService AzureNetQ.Tests.SimpleService - v4.0 + v4.5 512 @@ -23,6 +23,7 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false bin\Release\ @@ -32,6 +33,7 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false true @@ -41,6 +43,7 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false diff --git a/AzureNetQ.Tests.SimpleService/app.config b/AzureNetQ.Tests.SimpleService/app.config index beb93ea..0592fd1 100644 --- a/AzureNetQ.Tests.SimpleService/app.config +++ b/AzureNetQ.Tests.SimpleService/app.config @@ -1,10 +1,9 @@ - + - + diff --git a/AzureNetQ.nuspec b/AzureNetQ.nuspec index 2e99124..ad3e422 100644 --- a/AzureNetQ.nuspec +++ b/AzureNetQ.nuspec @@ -1,19 +1,20 @@ - - 0.2.0.1 + + Awesome.AzureNetQ + 0.3.0.0 Roysvork Roysvork - AzureNetQ - AzureNetQ + Awesome.AzureNetQ false AzureNetQ is a client API for Microsoft Azure Service Bus & Service Bus for Windows on .NET Pete Smith 2014 - http://roysvork.github.io/AzureNetQ + https://github.com/rykkart/AzureNetQ https://github.com/roysvork/AzureNetQ/blob/master/licence.txt - - + + + diff --git a/AzureNetQ.sln b/AzureNetQ.sln index 1ce3d45..1cd7922 100644 --- a/AzureNetQ.sln +++ b/AzureNetQ.sln @@ -1,12 +1,10 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.30501.0 +VisualStudioVersion = 12.0.31101.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureNetQ", "AzureNetQ\AzureNetQ.csproj", "{B8DEF709-5168-48F1-B8D3-AD44E4A4A22B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureNetQ.Tests", "AzureNetQ.Tests\AzureNetQ.Tests.csproj", "{640DEC15-3A17-4E85-B38A-CFB379426DC2}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureNetQ.Tests.SimpleService", "AzureNetQ.Tests.SimpleService\AzureNetQ.Tests.SimpleService.csproj", "{D5166633-83A2-48FA-B534-C2EC9D9DE9C3}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureNetQ.Tests.SimpleRequester", "AzureNetQ.Tests.SimpleRequester\AzureNetQ.Tests.SimpleRequester.csproj", "{5EDAA7BF-CD00-440C-9697-D24F7B37CFFA}" @@ -17,6 +15,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureNetQ.Tests.SendReceive EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureNetQ.Tests.PublishSubscribe", "AzureNetQ.Tests.PublishSubscribe\AzureNetQ.Tests.PublishSubscribe.csproj", "{6D68DFA2-6271-4847-96FA-631AE49D2CCA}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F446715B-07DE-4A4E-B54A-A55FBC7658A6}" + ProjectSection(SolutionItems) = preProject + .nuget\NuGet.Config = .nuget\NuGet.Config + .nuget\NuGet.exe = .nuget\NuGet.exe + .nuget\NuGet.targets = .nuget\NuGet.targets + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -45,21 +50,6 @@ Global {B8DEF709-5168-48F1-B8D3-AD44E4A4A22B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {B8DEF709-5168-48F1-B8D3-AD44E4A4A22B}.Release|Mixed Platforms.Build.0 = Release|Any CPU {B8DEF709-5168-48F1-B8D3-AD44E4A4A22B}.Release|x86.ActiveCfg = Release|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Debug|x86.ActiveCfg = Debug|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.DebugCloud|Any CPU.ActiveCfg = DebugCloud|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.DebugCloud|Any CPU.Build.0 = DebugCloud|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.DebugCloud|Mixed Platforms.ActiveCfg = Debug|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.DebugCloud|Mixed Platforms.Build.0 = Debug|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.DebugCloud|x86.ActiveCfg = DebugCloud|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Release|Any CPU.Build.0 = Release|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {640DEC15-3A17-4E85-B38A-CFB379426DC2}.Release|x86.ActiveCfg = Release|Any CPU {D5166633-83A2-48FA-B534-C2EC9D9DE9C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D5166633-83A2-48FA-B534-C2EC9D9DE9C3}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5166633-83A2-48FA-B534-C2EC9D9DE9C3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU diff --git a/AzureNetQ/AutoSubscribe/AutoSubscriber.cs b/AzureNetQ/AutoSubscribe/AutoSubscriber.cs index 629ade8..6f73fed 100644 --- a/AzureNetQ/AutoSubscribe/AutoSubscriber.cs +++ b/AzureNetQ/AutoSubscribe/AutoSubscriber.cs @@ -1,13 +1,12 @@ namespace AzureNetQ.AutoSubscribe { + using FluentConfiguration; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading.Tasks; - using AzureNetQ.FluentConfiguration; - /// /// Lets you scan assemblies for implementations of so that /// these will get registrered as subscribers in the bus. @@ -174,13 +173,13 @@ protected void InvokeMethods( var configuration = new Action(c => configurationActions.ForEach(o => o(c))); - + var dispatchDelegate = Delegate.CreateDelegate( subscriberTypeFromMessageTypeDelegate(subscriptionInfo.MessageType), this.AutoSubscriberMessageDispatcher, dispatchMethod); - + var busSubscribeMethod = genericBusSubscribeMethod.MakeGenericMethod(subscriptionInfo.MessageType); busSubscribeMethod.Invoke(this.Bus, new object[] { dispatchDelegate, configuration }); diff --git a/AzureNetQ/AzureBus.cs b/AzureNetQ/AzureBus.cs index bc3a7b0..f20a689 100644 --- a/AzureNetQ/AzureBus.cs +++ b/AzureNetQ/AzureBus.cs @@ -1,15 +1,13 @@ namespace AzureNetQ { - using System; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using AzureNetQ.Consumer; using AzureNetQ.FluentConfiguration; using AzureNetQ.Producer; - using Microsoft.ServiceBus.Messaging; + using System; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; public class AzureBus : IBus { @@ -73,6 +71,13 @@ public void Publish(T message) where T : class this.PublishAsync(message).Wait(); } + public void Publish(T message, DateTime scheduledEnqueueTime) where T : class + { + Preconditions.CheckNotNull(message, "message"); + + this.PublishAsync(message, scheduledEnqueueTime).Wait(); + } + public void Publish(T message, string topic) where T : class { Preconditions.CheckNotNull(message, "message"); @@ -81,6 +86,14 @@ public void Publish(T message, string topic) where T : class this.PublishAsync(message, topic).Wait(); } + public void Publish(T message, string topic, DateTime scheduledEnqueueTime) where T : class + { + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(topic, "topic"); + + this.PublishAsync(message, topic, scheduledEnqueueTime).Wait(); + } + public void Publish(T message, Action configure) where T : class { Preconditions.CheckNotNull(message, "message"); @@ -89,6 +102,14 @@ public void Publish(T message, Action configure) where this.PublishAsync(message, configure).Wait(); } + public void Publish(T message, Action configure, DateTime scheduledEnqueueTime) where T : class + { + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(configure, "configure"); + + this.PublishAsync(message, configure, scheduledEnqueueTime).Wait(); + } + public void Publish(T message, string topic, Action configure) where T : class { Preconditions.CheckNotNull(message, "message"); @@ -98,6 +119,15 @@ public void Publish(T message, string topic, Action co this.PublishAsync(message, topic, configure).Wait(); } + public void Publish(T message, string topic, Action configure, DateTime scheduledEnqueueTime) where T : class + { + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(topic, "topic"); + Preconditions.CheckNotNull(configure, "configure"); + + this.PublishAsync(message, topic, configure, scheduledEnqueueTime).Wait(); + } + public void Publish(Type type, object message) { Preconditions.CheckNotNull(type, "type"); @@ -106,6 +136,14 @@ public void Publish(Type type, object message) this.PublishAsync(type, message, x => { }).Wait(); } + public void Publish(Type type, object message, DateTime scheduledEnqueueTime) + { + Preconditions.CheckNotNull(type, "type"); + Preconditions.CheckNotNull(message, "message"); + + this.PublishAsync(type, message, x => { }, scheduledEnqueueTime).Wait(); + } + public void Publish(Type type, object message, string topic) { Preconditions.CheckNotNull(type, "type"); @@ -115,6 +153,15 @@ public void Publish(Type type, object message, string topic) this.PublishAsync(type, message, topic, x => { }).Wait(); } + public void Publish(Type type, object message, string topic, DateTime scheduledEnqueueTime) + { + Preconditions.CheckNotNull(type, "type"); + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(topic, "topic"); + + this.PublishAsync(type, message, topic, x => { }, scheduledEnqueueTime).Wait(); + } + public void Publish(Type type, object message, Action configure) { Preconditions.CheckNotNull(type, "type"); @@ -124,6 +171,15 @@ public void Publish(Type type, object message, Action con this.PublishAsync(type, message, configure).Wait(); } + public void Publish(Type type, object message, Action configure, DateTime scheduledEnqueueTime) + { + Preconditions.CheckNotNull(type, "type"); + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(configure, "configure"); + + this.PublishAsync(type, message, configure, scheduledEnqueueTime).Wait(); + } + public void Publish(Type type, object message, string topic, Action configure) { Preconditions.CheckNotNull(type, "type"); @@ -134,6 +190,16 @@ public void Publish(Type type, object message, string topic, Action configure, DateTime scheduledEnqueueTime) + { + Preconditions.CheckNotNull(type, "type"); + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(topic, "topic"); + Preconditions.CheckNotNull(configure, "configure"); + + this.PublishAsync(type, message, topic, configure, scheduledEnqueueTime).Wait(); + } + public Task PublishAsync(T message) where T : class { Preconditions.CheckNotNull(message, "message"); @@ -141,6 +207,13 @@ public Task PublishAsync(T message) where T : class return this.PublishAsync(message, x => { }); } + public Task PublishAsync(T message, DateTime scheduledEnqueueTime) where T : class + { + Preconditions.CheckNotNull(message, "message"); + + return this.PublishAsync(message, x => { }, scheduledEnqueueTime); + } + public Task PublishAsync(T message, string topic) where T : class { Preconditions.CheckNotNull(message, "message"); @@ -149,6 +222,14 @@ public Task PublishAsync(T message, string topic) where T : class return this.PublishAsync(message, topic, x => { }); } + public Task PublishAsync(T message, string topic, DateTime scheduledEnqueueTime) where T : class + { + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(topic, "topic"); + + return this.PublishAsync(message, topic, x => { }, scheduledEnqueueTime); + } + public Task PublishAsync(T message, Action configure) where T : class { Preconditions.CheckNotNull(message, "message"); @@ -157,6 +238,14 @@ public Task PublishAsync(T message, Action configure) return this.PublishAsync(typeof(T), message, configure); } + public Task PublishAsync(T message, Action configure, DateTime scheduledEnqueueTime) where T : class + { + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(configure, "configure"); + + return this.PublishAsync(typeof(T), message, configure, scheduledEnqueueTime); + } + public Task PublishAsync(T message, string topic, Action configure) where T : class { Preconditions.CheckNotNull(message, "message"); @@ -166,6 +255,15 @@ public Task PublishAsync(T message, string topic, Action(T message, string topic, Action configure, DateTime scheduledEnqueueTime) where T : class + { + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(topic, "topic"); + Preconditions.CheckNotNull(configure, "configure"); + + return this.PublishAsync(typeof(T), message, topic, configure, scheduledEnqueueTime); + } + public Task PublishAsync(Type type, object message) { Preconditions.CheckNotNull(type, "type"); @@ -174,6 +272,14 @@ public Task PublishAsync(Type type, object message) return this.PublishAsync(type, message, x => { }); } + public Task PublishAsync(Type type, object message, DateTime scheduledEnqueueTime) + { + Preconditions.CheckNotNull(type, "type"); + Preconditions.CheckNotNull(message, "message"); + + return this.PublishAsync(type, message, x => { }, scheduledEnqueueTime); + } + public Task PublishAsync(Type type, object message, string topic) { Preconditions.CheckNotNull(type, "type"); @@ -183,6 +289,15 @@ public Task PublishAsync(Type type, object message, string topic) return this.PublishAsync(type, message, topic, x => { }); } + public Task PublishAsync(Type type, object message, string topic, DateTime scheduledEnqueueTime) + { + Preconditions.CheckNotNull(type, "type"); + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(topic, "topic"); + + return this.PublishAsync(type, message, topic, x => { }, scheduledEnqueueTime); + } + public Task PublishAsync(Type type, object message, Action configure) { Preconditions.CheckNotNull(type, "type"); @@ -192,11 +307,28 @@ public Task PublishAsync(Type type, object message, Action configure, DateTime scheduledEnqueueTime) + { + Preconditions.CheckNotNull(type, "type"); + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(configure, "configure"); + + return this.PublishAsync(type, message, this.conventions.TopicNamingConvention(type), configure, scheduledEnqueueTime); + } + public Task PublishAsync(Type type, object message, string topicName, Action configure) { Preconditions.CheckNotNull(message, "message"); Preconditions.CheckNotNull(configure, "configure"); + return this.PublishAsync(type, message, topicName, configure, DateTime.Now); + } + + public Task PublishAsync(Type type, object message, string topicName, Action configure, DateTime scheduledEnqueueTime) + { + Preconditions.CheckNotNull(message, "message"); + Preconditions.CheckNotNull(configure, "configure"); + var queueName = this.conventions.QueueNamingConvention(type); var queue = this.advancedBus.TopicFind(queueName); @@ -214,6 +346,8 @@ public Task PublishAsync(Type type, object message, string topicName, Action(Func onMessage, Action - { - this.InfoWrite( - queueName, - message.MessageId, - string.Format("Received message on subscription {0}", configuration.Subscription)); + { + this.InfoWrite( + queueName, + message.MessageId, + string.Format("Received message on subscription {0}", configuration.Subscription)); T messageBody; try @@ -324,7 +458,7 @@ public virtual void SubscribeAsync(Func onMessage, Action(Func onMessage, ActionProperties AzureNetQ AzureNetQ - v4.0 + v4.5 512 @@ -50,15 +50,17 @@ - - ..\packages\ServiceBus.v1_1.1.0.3.0\lib\net40-full\Microsoft.ServiceBus.dll + + ..\packages\WindowsAzure.ServiceBus.3.1.4\lib\net45-full\Microsoft.ServiceBus.dll + True - - ..\packages\Microsoft.WindowsAzure.ConfigurationManager.2.0.0.0\lib\net40\Microsoft.WindowsAzure.Configuration.dll + + ..\packages\Microsoft.WindowsAzure.ConfigurationManager.3.2.1\lib\net40\Microsoft.WindowsAzure.Configuration.dll + True - - False - ..\packages\Newtonsoft.Json.6.0.3\lib\net40\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.8.0.2\lib\net45\Newtonsoft.Json.dll + True @@ -121,8 +123,12 @@ - - + + Designer + + + Designer + diff --git a/AzureNetQ/IBus.cs b/AzureNetQ/IBus.cs index e0d39c3..d5fe6b5 100644 --- a/AzureNetQ/IBus.cs +++ b/AzureNetQ/IBus.cs @@ -1,11 +1,10 @@ namespace AzureNetQ { + using Consumer; + using FluentConfiguration; using System; using System.Threading.Tasks; - using AzureNetQ.Consumer; - using AzureNetQ.FluentConfiguration; - /// /// Provides a simple Publish/Subscribe and Request/Response API for a message bus. /// @@ -17,36 +16,68 @@ public interface IBus : IDisposable void Publish(T message) where T : class; + void Publish(T message, DateTime scheduledEnqueueTime) where T : class; + void Publish(T message, string topic) where T : class; + void Publish(T message, string topic, DateTime scheduledEnqueueTime) where T : class; + void Publish(T message, Action configure) where T : class; + void Publish(T message, Action configure, DateTime scheduledEnqueueTime) where T : class; + void Publish(T message, string topic, Action configure) where T : class; + void Publish(T message, string topic, Action configure, DateTime scheduledEnqueueTime) where T : class; + void Publish(Type type, object message); + void Publish(Type type, object message, DateTime scheduledEnqueueTime); + void Publish(Type type, object message, string topic); + void Publish(Type type, object message, string topic, DateTime scheduledEnqueueTime); + void Publish(Type type, object message, Action configure); + void Publish(Type type, object message, Action configure, DateTime scheduledEnqueueTime); + void Publish(Type type, object message, string topic, Action configure); + void Publish(Type type, object message, string topic, Action configure, DateTime scheduledEnqueueTime); + Task PublishAsync(T message) where T : class; + Task PublishAsync(T message, DateTime scheduledEnqueueTime) where T : class; + Task PublishAsync(T message, string topic) where T : class; + Task PublishAsync(T message, string topic, DateTime scheduledEnqueueTime) where T : class; + Task PublishAsync(T message, Action configure) where T : class; + Task PublishAsync(T message, Action configure, DateTime scheduledEnqueueTime) where T : class; + Task PublishAsync(T message, string topic, Action configure) where T : class; + Task PublishAsync(T message, string topic, Action configure, DateTime scheduledEnqueueTime) where T : class; + Task PublishAsync(Type type, object message); + Task PublishAsync(Type type, object message, DateTime scheduledEnqueueTime); + Task PublishAsync(Type type, object message, string topic); + Task PublishAsync(Type type, object message, string topic, DateTime scheduledEnqueueTime); + Task PublishAsync(Type type, object message, Action configure); + Task PublishAsync(Type type, object message, Action configure, DateTime scheduledEnqueueTime); + Task PublishAsync(Type type, object message, string topicName, Action configure); + Task PublishAsync(Type type, object message, string topicName, Action configure, DateTime scheduledEnqueueTime); + void Subscribe(Action onMessage) where T : class; void Subscribe(Action onMessage, Action configure) where T : class; diff --git a/AzureNetQ/Properties/AssemblyInfo.cs b/AzureNetQ/Properties/AssemblyInfo.cs index 0535036..7e594f4 100644 --- a/AzureNetQ/Properties/AssemblyInfo.cs +++ b/AzureNetQ/Properties/AssemblyInfo.cs @@ -21,5 +21,5 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("a306e985-0fcf-4cc6-a1a3-d57214d1ea40")] -[assembly: AssemblyVersionAttribute("0.2.0.*")] -[assembly: AssemblyFileVersionAttribute("0.2.0.1")] +[assembly: AssemblyVersionAttribute("0.3.0.*")] +[assembly: AssemblyFileVersionAttribute("0.3.0.1")] diff --git a/AzureNetQ/app.config b/AzureNetQ/app.config index 8ea1624..87d7e29 100644 --- a/AzureNetQ/app.config +++ b/AzureNetQ/app.config @@ -1,32 +1,7 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + diff --git a/AzureNetQ/packages.config b/AzureNetQ/packages.config index 805dba0..6f63b0b 100644 --- a/AzureNetQ/packages.config +++ b/AzureNetQ/packages.config @@ -1,6 +1,6 @@  - - - + + + \ No newline at end of file