From 7c98e7fbd19de13cf5ad5a4d341d48ccb1fe95cd Mon Sep 17 00:00:00 2001 From: Renato Golia Date: Fri, 2 Aug 2019 19:39:08 +0200 Subject: [PATCH 1/5] Initial commit --- Nybus.sln | 15 ++++++++++ .../MassTransit/MassTransitBusEngine.cs | 30 +++++++++++++++++++ .../Nybus.Engine.MassTransit.csproj | 19 ++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs create mode 100644 src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj diff --git a/Nybus.sln b/Nybus.sln index f8faacf..f2eea02 100644 --- a/Nybus.sln +++ b/Nybus.sln @@ -75,6 +75,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Extensions.Host EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtils", "tests\TestUtils\TestUtils.csproj", "{59224801-62AC-47B5-866D-DDB7C8C80C34}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.MassTransit", "src\engines\Nybus.Engine.MassTransit\Nybus.Engine.MassTransit.csproj", "{7401D747-9190-4AA4-947E-FEF520B6D70E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -400,6 +402,18 @@ Global {59224801-62AC-47B5-866D-DDB7C8C80C34}.Release|x64.Build.0 = Release|Any CPU {59224801-62AC-47B5-866D-DDB7C8C80C34}.Release|x86.ActiveCfg = Release|Any CPU {59224801-62AC-47B5-866D-DDB7C8C80C34}.Release|x86.Build.0 = Release|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|x64.ActiveCfg = Debug|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|x64.Build.0 = Debug|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|x86.ActiveCfg = Debug|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|x86.Build.0 = Debug|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|Any CPU.Build.0 = Release|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|x64.ActiveCfg = Release|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|x64.Build.0 = Release|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|x86.ActiveCfg = Release|Any CPU + {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {E9D20575-536A-46B3-809E-B5646101017C} = {2037A937-74BD-4FE3-89FD-E57A64E8DE8D} @@ -435,5 +449,6 @@ Global {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} {59224801-62AC-47B5-866D-DDB7C8C80C34} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} + {7401D747-9190-4AA4-947E-FEF520B6D70E} = {17E9DF21-B764-4D8C-AF43-03A37E8869D9} EndGlobalSection EndGlobal diff --git a/src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs b/src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs new file mode 100644 index 0000000..d97c3bd --- /dev/null +++ b/src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs @@ -0,0 +1,30 @@ +using System; +using System.Threading.Tasks; + +namespace Nybus.MassTransit +{ + public class MassTransitBusEngine : IBusEngine + { + public Task> StartAsync() => throw new NotImplementedException(); + + public Task StopAsync() => throw new NotImplementedException(); + + public void SubscribeToCommand() + where TCommand : class, ICommand + { + throw new NotImplementedException(); + } + + public void SubscribeToEvent() + where TEvent : class, IEvent + { + throw new NotImplementedException(); + } + + public Task SendMessageAsync(Message message) => throw new NotImplementedException(); + + public Task NotifySuccessAsync(Message message) => throw new NotImplementedException(); + + public Task NotifyFailAsync(Message message) => throw new NotImplementedException(); + } +} diff --git a/src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj b/src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj new file mode 100644 index 0000000..4f15d0e --- /dev/null +++ b/src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj @@ -0,0 +1,19 @@ + + + + netstandard2.0;net461 + Nybus + Nybus.Engine.MassTransit + Engine for Nybus based on MassTransit. + dotnet-standard;framework;queue;rx;nybus;masstransit + + + + + + + + + + + From 2080f9f14647152f97149709b99b81458afb6872 Mon Sep 17 00:00:00 2001 From: Renato Golia Date: Tue, 1 Oct 2019 15:03:05 +0200 Subject: [PATCH 2/5] Imported MassTransitBusEngine from Kralizek/NybusMassTransit --- Nybus.sln | 841 ++++++++++-------- .../RabbitMQ/PureSender/Program.cs | 47 + .../RabbitMQ/PureSender/PureSender.csproj | 19 + .../MassTransit/RabbitMQ/Receiver/Program.cs | 47 + .../RabbitMQ/Receiver/Receiver.csproj | 19 + samples/MassTransit/RabbitMQ/Types/Types.cs | 15 + .../MassTransit/RabbitMQ/Types/Types.csproj | 11 + .../MassTransit/MassTransitBusEngine.cs | 163 +++- .../Nybus.Engine.MassTransit.csproj | 3 +- 9 files changed, 762 insertions(+), 403 deletions(-) create mode 100644 samples/MassTransit/RabbitMQ/PureSender/Program.cs create mode 100644 samples/MassTransit/RabbitMQ/PureSender/PureSender.csproj create mode 100644 samples/MassTransit/RabbitMQ/Receiver/Program.cs create mode 100644 samples/MassTransit/RabbitMQ/Receiver/Receiver.csproj create mode 100644 samples/MassTransit/RabbitMQ/Types/Types.cs create mode 100644 samples/MassTransit/RabbitMQ/Types/Types.csproj diff --git a/Nybus.sln b/Nybus.sln index f2eea02..88e7099 100644 --- a/Nybus.sln +++ b/Nybus.sln @@ -3,79 +3,89 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.26124.0 MinimumVisualStudioVersion = 15.0.26124.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{2037A937-74BD-4FE3-89FD-E57A64E8DE8D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{CC979494-247D-4546-9B80-4A347F030FAF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "extras", "extras", "{E9D20575-536A-46B3-809E-B5646101017C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "extras", "extras", "{22AC8398-C739-4359-8B45-E09525AA7412}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ErrorFilters", "samples\extras\ErrorFilters\ErrorFilters.csproj", "{43C4953B-5E21-4379-8027-2B26DFF973E3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ErrorFilters", "samples\extras\ErrorFilters\ErrorFilters.csproj", "{42888BF1-6F80-4629-BCE2-F3C9739C6E4B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InMemory", "InMemory", "{793410BA-C89D-4ADD-8E01-79801B863543}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InMemory", "InMemory", "{13AEE8DC-BDFF-4031-B95D-F65E70062A65}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCoreConsoleApp", "samples\InMemory\NetCoreConsoleApp\NetCoreConsoleApp.csproj", "{D931A491-A305-4CFF-8AD1-52099678C63B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCoreConsoleApp", "samples\InMemory\NetCoreConsoleApp\NetCoreConsoleApp.csproj", "{0182C7DB-3C8C-4FC6-9638-664A2E8625FE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetFxWindowsService", "samples\InMemory\NetFxWindowsService\NetFxWindowsService.csproj", "{BFADCD54-BCBC-490C-AA34-33CADA228098}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetFxWindowsService", "samples\InMemory\NetFxWindowsService\NetFxWindowsService.csproj", "{0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RabbitMQ", "RabbitMQ", "{7823517A-5361-4DD0-904D-8811F12BF526}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MassTransit", "MassTransit", "{519D726B-74FF-4CF6-928D-521ACC6B4D4A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PureSender", "samples\RabbitMQ\PureSender\PureSender.csproj", "{C69158DD-174B-472B-BAA8-6D07A9285863}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RabbitMQ", "RabbitMQ", "{F53FD4C8-8AB9-4BD9-88E9-9660D73422C1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReceiverConfig", "samples\RabbitMQ\ReceiverConfig\ReceiverConfig.csproj", "{18F310DF-5C7E-40C8-8A1C-602B0B7195FB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PureSender", "samples\MassTransit\RabbitMQ\PureSender\PureSender.csproj", "{A286B4B2-21EA-4356-8DA5-3581663CAFB7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReceiverSetup", "samples\RabbitMQ\ReceiverSetup\ReceiverSetup.csproj", "{74AD0097-E2CF-41E8-8167-8803E022B3BA}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Receiver", "samples\MassTransit\RabbitMQ\Receiver\Receiver.csproj", "{A4A3212B-16D0-4914-8D45-D289F367D63C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SenderFeedback", "samples\RabbitMQ\SenderFeedback\SenderFeedback.csproj", "{2759CF01-B7C1-44D9-A809-D2CB578BD614}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Types", "samples\MassTransit\RabbitMQ\Types\Types.csproj", "{934928B1-C064-4364-B68D-BB80CB67727E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Types", "samples\RabbitMQ\Types\Types.csproj", "{47A58410-8EDB-4D40-9AA4-D646E55BCE37}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RabbitMQ", "RabbitMQ", "{82A9EAED-EDC6-4EBB-8921-E2D952EF5FE1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{79107360-DFF1-427F-A9FE-AA2B4E41BD7D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PureSender", "samples\RabbitMQ\PureSender\PureSender.csproj", "{152749B0-DB84-4ED2-B154-9F66CD71BC32}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "engines", "engines", "{17E9DF21-B764-4D8C-AF43-03A37E8869D9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReceiverConfig", "samples\RabbitMQ\ReceiverConfig\ReceiverConfig.csproj", "{8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.AWS", "src\engines\Nybus.Engine.AWS\Nybus.Engine.AWS.csproj", "{FCEFB904-9F2F-48E7-9A60-037BC910B41C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReceiverSetup", "samples\RabbitMQ\ReceiverSetup\ReceiverSetup.csproj", "{5F1B9DD5-36A8-421A-B7F9-229C05793776}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.InMemory", "src\engines\Nybus.Engine.InMemory\Nybus.Engine.InMemory.csproj", "{2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SenderFeedback", "samples\RabbitMQ\SenderFeedback\SenderFeedback.csproj", "{87964ABE-7F88-4EF5-92B3-934FC946432E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.RabbitMq", "src\engines\Nybus.Engine.RabbitMq\Nybus.Engine.RabbitMq.csproj", "{47F9DC7D-561E-40A8-AD61-D584D6C5A779}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Types", "samples\RabbitMQ\Types\Types.csproj", "{A2C1708B-0495-4E13-AF9D-CB300266A18A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "extensions", "extensions", "{D3F167B8-2B1E-4F03-894D-949F0C067BB1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{49803467-A2E3-43C2-8633-1477BD2713E7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hosting", "hosting", "{35608298-A0A5-4155-B97F-506F7E6B55F2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "engines", "engines", "{F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Extensions.Hosting.HostedService", "src\extensions\hosting\Nybus.Extensions.HostedService\Nybus.Extensions.Hosting.HostedService.csproj", "{485B2A72-882B-4BAD-B3EC-A33462946380}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.AWS", "src\engines\Nybus.Engine.AWS\Nybus.Engine.AWS.csproj", "{9BEB8310-95C8-45AC-AFF1-C66154AC8828}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Extensions.Hosting.Lambda", "src\extensions\hosting\Nybus.Extensions.Hosting.Lambda\Nybus.Extensions.Hosting.Lambda.csproj", "{FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.InMemory", "src\engines\Nybus.Engine.InMemory\Nybus.Engine.InMemory.csproj", "{003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Extensions.Hosting.TopShelf", "src\extensions\hosting\Nybus.Extensions.TopShelf\Nybus.Extensions.Hosting.TopShelf.csproj", "{29D2C2D0-F721-49AC-9F49-B75BF4C0718C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.MassTransit", "src\engines\Nybus.Engine.MassTransit\Nybus.Engine.MassTransit.csproj", "{ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus", "src\Nybus\Nybus.csproj", "{63DCE53A-301C-4839-8290-963845B1AAF5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.RabbitMq", "src\engines\Nybus.Engine.RabbitMq\Nybus.Engine.RabbitMq.csproj", "{C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Abstractions", "src\Nybus.Abstractions\Nybus.Abstractions.csproj", "{D06540C0-566B-47E8-BDE0-69A979581998}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "extensions", "extensions", "{C93044C3-8C3B-4CA5-9508-B35049BDC72F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{AB55B1AF-204F-4343-9CB9-4898DCE28A05}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hosting", "hosting", "{65CD0ABC-FD16-4653-BCCE-E4D691C0F092}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integration", "integration", "{6A325815-461A-4C7E-9FDC-A3728481BFC6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Extensions.Hosting.HostedService", "src\extensions\hosting\Nybus.Extensions.HostedService\Nybus.Extensions.Hosting.HostedService.csproj", "{AF293FAF-58DE-4433-8D02-8F7905F0233D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Integration.Nybus.Engine.InMemory", "tests\integration\Tests.Integration.Nybus.Engine.InMemory\Tests.Integration.Nybus.Engine.InMemory.csproj", "{FD843AEC-4B6B-4805-8C51-D2A96745F1B1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Extensions.Hosting.Lambda", "src\extensions\hosting\Nybus.Extensions.Hosting.Lambda\Nybus.Extensions.Hosting.Lambda.csproj", "{47336155-AA74-4FA0-98C5-23EBD68E644C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Integration.Nybus.Engine.RabbitMq", "tests\integration\Tests.Integration.Nybus.Engine.RabbitMq\Tests.Integration.Nybus.Engine.RabbitMq.csproj", "{748CAC4C-2882-451F-869E-0B3AC706A6E0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Extensions.Hosting.TopShelf", "src\extensions\hosting\Nybus.Extensions.TopShelf\Nybus.Extensions.Hosting.TopShelf.csproj", "{4B6A608B-CB4C-4947-9FDB-BADD545647D7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus", "tests\Tests.Nybus\Tests.Nybus.csproj", "{33DF4BD4-DA98-4908-91DE-78F118EC919B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus", "src\Nybus\Nybus.csproj", "{25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Abstractions", "tests\Tests.Nybus.Abstractions\Tests.Nybus.Abstractions.csproj", "{2BC229A8-583A-4E84-B6C6-857341AD7476}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Abstractions", "src\Nybus.Abstractions\Nybus.Abstractions.csproj", "{FA2AAC82-AAAF-49E4-A26E-097D98BAE924}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Engine.InMemory", "tests\Tests.Nybus.Engine.InMemory\Tests.Nybus.Engine.InMemory.csproj", "{1E606BE0-639D-4F63-9CCE-D0AD21338CEE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F19D8CBF-CB02-424C-8D30-A594D04C38AA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Engine.RabbitMq", "tests\Tests.Nybus.Engine.RabbitMq\Tests.Nybus.Engine.RabbitMq.csproj", "{D41A51A3-344C-487F-8FBE-64A01D874C7A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integration", "integration", "{10E90681-4304-4E2B-A3B2-7E1F39B3A373}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Extensions.Hosting.HostedService", "tests\Tests.Nybus.Extensions.Hosting.HostedService\Tests.Nybus.Extensions.Hosting.HostedService.csproj", "{33549D2E-2B52-40E2-A38E-0ECCF2674A0E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Integration.Nybus.Engine.InMemory", "tests\integration\Tests.Integration.Nybus.Engine.InMemory\Tests.Integration.Nybus.Engine.InMemory.csproj", "{0AC12289-08F0-491F-9487-575867FFB84A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Extensions.Hosting.Lambda", "tests\Tests.Nybus.Extensions.Hosting.Lambda\Tests.Nybus.Extensions.Hosting.Lambda.csproj", "{569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Integration.Nybus.Engine.RabbitMq", "tests\integration\Tests.Integration.Nybus.Engine.RabbitMq\Tests.Integration.Nybus.Engine.RabbitMq.csproj", "{65C1645B-84A7-48DF-8419-371D68C52DC7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Extensions.Hosting.TopShelf", "tests\Tests.Nybus.Extensions.Hosting.TopShelf\Tests.Nybus.Extensions.Hosting.TopShelf.csproj", "{C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus", "tests\Tests.Nybus\Tests.Nybus.csproj", "{5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtils", "tests\TestUtils\TestUtils.csproj", "{59224801-62AC-47B5-866D-DDB7C8C80C34}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Abstractions", "tests\Tests.Nybus.Abstractions\Tests.Nybus.Abstractions.csproj", "{8A41DD64-04A2-4797-B833-039262932F82}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.MassTransit", "src\engines\Nybus.Engine.MassTransit\Nybus.Engine.MassTransit.csproj", "{7401D747-9190-4AA4-947E-FEF520B6D70E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Engine.InMemory", "tests\Tests.Nybus.Engine.InMemory\Tests.Nybus.Engine.InMemory.csproj", "{FD406E23-BB03-4AD6-BAF5-403D51E694F3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Engine.RabbitMq", "tests\Tests.Nybus.Engine.RabbitMq\Tests.Nybus.Engine.RabbitMq.csproj", "{764B0034-CBE8-462E-85DC-087C55EA762B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Extensions.Hosting.HostedService", "tests\Tests.Nybus.Extensions.Hosting.HostedService\Tests.Nybus.Extensions.Hosting.HostedService.csproj", "{CEF202A9-5076-4652-876D-9CCEEB706436}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Extensions.Hosting.Lambda", "tests\Tests.Nybus.Extensions.Hosting.Lambda\Tests.Nybus.Extensions.Hosting.Lambda.csproj", "{6BE05A98-4E35-402F-B345-05E5B9D60B2D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Extensions.Hosting.TopShelf", "tests\Tests.Nybus.Extensions.Hosting.TopShelf\Tests.Nybus.Extensions.Hosting.TopShelf.csproj", "{088FF8BE-822F-4991-A84D-91B7D92F9FD0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtils", "tests\TestUtils\TestUtils.csproj", "{41B9D566-D271-4BC1-9892-6474BCCBBC12}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -90,365 +100,406 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Debug|x64.ActiveCfg = Debug|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Debug|x64.Build.0 = Debug|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Debug|x86.ActiveCfg = Debug|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Debug|x86.Build.0 = Debug|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Release|Any CPU.Build.0 = Release|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Release|x64.ActiveCfg = Release|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Release|x64.Build.0 = Release|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Release|x86.ActiveCfg = Release|Any CPU - {43C4953B-5E21-4379-8027-2B26DFF973E3}.Release|x86.Build.0 = Release|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Debug|x64.ActiveCfg = Debug|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Debug|x64.Build.0 = Debug|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Debug|x86.ActiveCfg = Debug|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Debug|x86.Build.0 = Debug|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Release|Any CPU.Build.0 = Release|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Release|x64.ActiveCfg = Release|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Release|x64.Build.0 = Release|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Release|x86.ActiveCfg = Release|Any CPU - {D931A491-A305-4CFF-8AD1-52099678C63B}.Release|x86.Build.0 = Release|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Debug|x64.ActiveCfg = Debug|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Debug|x64.Build.0 = Debug|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Debug|x86.ActiveCfg = Debug|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Debug|x86.Build.0 = Debug|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Release|Any CPU.Build.0 = Release|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Release|x64.ActiveCfg = Release|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Release|x64.Build.0 = Release|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Release|x86.ActiveCfg = Release|Any CPU - {BFADCD54-BCBC-490C-AA34-33CADA228098}.Release|x86.Build.0 = Release|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Debug|x64.ActiveCfg = Debug|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Debug|x64.Build.0 = Debug|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Debug|x86.ActiveCfg = Debug|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Debug|x86.Build.0 = Debug|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Release|Any CPU.Build.0 = Release|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Release|x64.ActiveCfg = Release|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Release|x64.Build.0 = Release|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Release|x86.ActiveCfg = Release|Any CPU - {C69158DD-174B-472B-BAA8-6D07A9285863}.Release|x86.Build.0 = Release|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Debug|x64.ActiveCfg = Debug|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Debug|x64.Build.0 = Debug|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Debug|x86.ActiveCfg = Debug|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Debug|x86.Build.0 = Debug|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Release|Any CPU.Build.0 = Release|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Release|x64.ActiveCfg = Release|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Release|x64.Build.0 = Release|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Release|x86.ActiveCfg = Release|Any CPU - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB}.Release|x86.Build.0 = Release|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Debug|x64.ActiveCfg = Debug|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Debug|x64.Build.0 = Debug|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Debug|x86.ActiveCfg = Debug|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Debug|x86.Build.0 = Debug|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Release|Any CPU.Build.0 = Release|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Release|x64.ActiveCfg = Release|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Release|x64.Build.0 = Release|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Release|x86.ActiveCfg = Release|Any CPU - {74AD0097-E2CF-41E8-8167-8803E022B3BA}.Release|x86.Build.0 = Release|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Debug|x64.ActiveCfg = Debug|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Debug|x64.Build.0 = Debug|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Debug|x86.ActiveCfg = Debug|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Debug|x86.Build.0 = Debug|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Release|Any CPU.Build.0 = Release|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Release|x64.ActiveCfg = Release|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Release|x64.Build.0 = Release|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Release|x86.ActiveCfg = Release|Any CPU - {2759CF01-B7C1-44D9-A809-D2CB578BD614}.Release|x86.Build.0 = Release|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Debug|x64.ActiveCfg = Debug|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Debug|x64.Build.0 = Debug|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Debug|x86.ActiveCfg = Debug|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Debug|x86.Build.0 = Debug|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Release|Any CPU.ActiveCfg = Release|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Release|Any CPU.Build.0 = Release|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Release|x64.ActiveCfg = Release|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Release|x64.Build.0 = Release|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Release|x86.ActiveCfg = Release|Any CPU - {47A58410-8EDB-4D40-9AA4-D646E55BCE37}.Release|x86.Build.0 = Release|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Debug|x64.ActiveCfg = Debug|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Debug|x64.Build.0 = Debug|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Debug|x86.ActiveCfg = Debug|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Debug|x86.Build.0 = Debug|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Release|Any CPU.Build.0 = Release|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Release|x64.ActiveCfg = Release|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Release|x64.Build.0 = Release|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Release|x86.ActiveCfg = Release|Any CPU - {FCEFB904-9F2F-48E7-9A60-037BC910B41C}.Release|x86.Build.0 = Release|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Debug|x64.ActiveCfg = Debug|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Debug|x64.Build.0 = Debug|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Debug|x86.ActiveCfg = Debug|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Debug|x86.Build.0 = Debug|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Release|Any CPU.Build.0 = Release|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Release|x64.ActiveCfg = Release|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Release|x64.Build.0 = Release|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Release|x86.ActiveCfg = Release|Any CPU - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F}.Release|x86.Build.0 = Release|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Debug|x64.ActiveCfg = Debug|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Debug|x64.Build.0 = Debug|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Debug|x86.ActiveCfg = Debug|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Debug|x86.Build.0 = Debug|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Release|Any CPU.ActiveCfg = Release|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Release|Any CPU.Build.0 = Release|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Release|x64.ActiveCfg = Release|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Release|x64.Build.0 = Release|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Release|x86.ActiveCfg = Release|Any CPU - {47F9DC7D-561E-40A8-AD61-D584D6C5A779}.Release|x86.Build.0 = Release|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Debug|Any CPU.Build.0 = Debug|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Debug|x64.ActiveCfg = Debug|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Debug|x64.Build.0 = Debug|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Debug|x86.ActiveCfg = Debug|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Debug|x86.Build.0 = Debug|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Release|Any CPU.ActiveCfg = Release|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Release|Any CPU.Build.0 = Release|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Release|x64.ActiveCfg = Release|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Release|x64.Build.0 = Release|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Release|x86.ActiveCfg = Release|Any CPU - {485B2A72-882B-4BAD-B3EC-A33462946380}.Release|x86.Build.0 = Release|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Debug|x64.ActiveCfg = Debug|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Debug|x64.Build.0 = Debug|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Debug|x86.ActiveCfg = Debug|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Debug|x86.Build.0 = Debug|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Release|Any CPU.Build.0 = Release|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Release|x64.ActiveCfg = Release|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Release|x64.Build.0 = Release|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Release|x86.ActiveCfg = Release|Any CPU - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828}.Release|x86.Build.0 = Release|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Debug|x64.ActiveCfg = Debug|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Debug|x64.Build.0 = Debug|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Debug|x86.ActiveCfg = Debug|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Debug|x86.Build.0 = Debug|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Release|Any CPU.Build.0 = Release|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Release|x64.ActiveCfg = Release|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Release|x64.Build.0 = Release|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Release|x86.ActiveCfg = Release|Any CPU - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C}.Release|x86.Build.0 = Release|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Debug|x64.ActiveCfg = Debug|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Debug|x64.Build.0 = Debug|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Debug|x86.ActiveCfg = Debug|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Debug|x86.Build.0 = Debug|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Release|Any CPU.Build.0 = Release|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Release|x64.ActiveCfg = Release|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Release|x64.Build.0 = Release|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Release|x86.ActiveCfg = Release|Any CPU - {63DCE53A-301C-4839-8290-963845B1AAF5}.Release|x86.Build.0 = Release|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Debug|x64.ActiveCfg = Debug|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Debug|x64.Build.0 = Debug|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Debug|x86.ActiveCfg = Debug|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Debug|x86.Build.0 = Debug|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Release|Any CPU.Build.0 = Release|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Release|x64.ActiveCfg = Release|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Release|x64.Build.0 = Release|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Release|x86.ActiveCfg = Release|Any CPU - {D06540C0-566B-47E8-BDE0-69A979581998}.Release|x86.Build.0 = Release|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Debug|x64.ActiveCfg = Debug|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Debug|x64.Build.0 = Debug|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Debug|x86.ActiveCfg = Debug|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Debug|x86.Build.0 = Debug|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Release|Any CPU.Build.0 = Release|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Release|x64.ActiveCfg = Release|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Release|x64.Build.0 = Release|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Release|x86.ActiveCfg = Release|Any CPU - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1}.Release|x86.Build.0 = Release|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Debug|x64.ActiveCfg = Debug|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Debug|x64.Build.0 = Debug|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Debug|x86.ActiveCfg = Debug|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Debug|x86.Build.0 = Debug|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Release|Any CPU.Build.0 = Release|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Release|x64.ActiveCfg = Release|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Release|x64.Build.0 = Release|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Release|x86.ActiveCfg = Release|Any CPU - {748CAC4C-2882-451F-869E-0B3AC706A6E0}.Release|x86.Build.0 = Release|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Debug|x64.ActiveCfg = Debug|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Debug|x64.Build.0 = Debug|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Debug|x86.ActiveCfg = Debug|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Debug|x86.Build.0 = Debug|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Release|Any CPU.Build.0 = Release|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Release|x64.ActiveCfg = Release|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Release|x64.Build.0 = Release|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Release|x86.ActiveCfg = Release|Any CPU - {33DF4BD4-DA98-4908-91DE-78F118EC919B}.Release|x86.Build.0 = Release|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Debug|x64.ActiveCfg = Debug|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Debug|x64.Build.0 = Debug|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Debug|x86.ActiveCfg = Debug|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Debug|x86.Build.0 = Debug|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Release|Any CPU.Build.0 = Release|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Release|x64.ActiveCfg = Release|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Release|x64.Build.0 = Release|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Release|x86.ActiveCfg = Release|Any CPU - {2BC229A8-583A-4E84-B6C6-857341AD7476}.Release|x86.Build.0 = Release|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Debug|x64.ActiveCfg = Debug|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Debug|x64.Build.0 = Debug|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Debug|x86.ActiveCfg = Debug|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Debug|x86.Build.0 = Debug|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Release|Any CPU.Build.0 = Release|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Release|x64.ActiveCfg = Release|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Release|x64.Build.0 = Release|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Release|x86.ActiveCfg = Release|Any CPU - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE}.Release|x86.Build.0 = Release|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Debug|x64.ActiveCfg = Debug|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Debug|x64.Build.0 = Debug|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Debug|x86.ActiveCfg = Debug|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Debug|x86.Build.0 = Debug|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Release|Any CPU.Build.0 = Release|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Release|x64.ActiveCfg = Release|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Release|x64.Build.0 = Release|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Release|x86.ActiveCfg = Release|Any CPU - {D41A51A3-344C-487F-8FBE-64A01D874C7A}.Release|x86.Build.0 = Release|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Debug|x64.ActiveCfg = Debug|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Debug|x64.Build.0 = Debug|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Debug|x86.ActiveCfg = Debug|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Debug|x86.Build.0 = Debug|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Release|Any CPU.Build.0 = Release|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Release|x64.ActiveCfg = Release|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Release|x64.Build.0 = Release|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Release|x86.ActiveCfg = Release|Any CPU - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E}.Release|x86.Build.0 = Release|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Debug|Any CPU.Build.0 = Debug|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Debug|x64.ActiveCfg = Debug|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Debug|x64.Build.0 = Debug|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Debug|x86.ActiveCfg = Debug|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Debug|x86.Build.0 = Debug|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Release|Any CPU.Build.0 = Release|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Release|x64.ActiveCfg = Release|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Release|x64.Build.0 = Release|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Release|x86.ActiveCfg = Release|Any CPU - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70}.Release|x86.Build.0 = Release|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Debug|x64.ActiveCfg = Debug|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Debug|x64.Build.0 = Debug|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Debug|x86.ActiveCfg = Debug|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Debug|x86.Build.0 = Debug|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Release|Any CPU.Build.0 = Release|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Release|x64.ActiveCfg = Release|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Release|x64.Build.0 = Release|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Release|x86.ActiveCfg = Release|Any CPU - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2}.Release|x86.Build.0 = Release|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Debug|Any CPU.Build.0 = Debug|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Debug|x64.ActiveCfg = Debug|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Debug|x64.Build.0 = Debug|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Debug|x86.ActiveCfg = Debug|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Debug|x86.Build.0 = Debug|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Release|Any CPU.ActiveCfg = Release|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Release|Any CPU.Build.0 = Release|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Release|x64.ActiveCfg = Release|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Release|x64.Build.0 = Release|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Release|x86.ActiveCfg = Release|Any CPU - {59224801-62AC-47B5-866D-DDB7C8C80C34}.Release|x86.Build.0 = Release|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|x64.ActiveCfg = Debug|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|x64.Build.0 = Debug|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|x86.ActiveCfg = Debug|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Debug|x86.Build.0 = Debug|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|Any CPU.Build.0 = Release|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|x64.ActiveCfg = Release|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|x64.Build.0 = Release|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|x86.ActiveCfg = Release|Any CPU - {7401D747-9190-4AA4-947E-FEF520B6D70E}.Release|x86.Build.0 = Release|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Debug|x64.ActiveCfg = Debug|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Debug|x64.Build.0 = Debug|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Debug|x86.ActiveCfg = Debug|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Debug|x86.Build.0 = Debug|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Release|Any CPU.Build.0 = Release|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Release|x64.ActiveCfg = Release|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Release|x64.Build.0 = Release|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Release|x86.ActiveCfg = Release|Any CPU + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B}.Release|x86.Build.0 = Release|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Debug|x64.ActiveCfg = Debug|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Debug|x64.Build.0 = Debug|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Debug|x86.ActiveCfg = Debug|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Debug|x86.Build.0 = Debug|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Release|Any CPU.Build.0 = Release|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Release|x64.ActiveCfg = Release|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Release|x64.Build.0 = Release|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Release|x86.ActiveCfg = Release|Any CPU + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE}.Release|x86.Build.0 = Release|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Debug|x64.ActiveCfg = Debug|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Debug|x64.Build.0 = Debug|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Debug|x86.ActiveCfg = Debug|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Debug|x86.Build.0 = Debug|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Release|Any CPU.Build.0 = Release|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Release|x64.ActiveCfg = Release|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Release|x64.Build.0 = Release|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Release|x86.ActiveCfg = Release|Any CPU + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A}.Release|x86.Build.0 = Release|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Debug|x64.ActiveCfg = Debug|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Debug|x64.Build.0 = Debug|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Debug|x86.ActiveCfg = Debug|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Debug|x86.Build.0 = Debug|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Release|Any CPU.Build.0 = Release|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Release|x64.ActiveCfg = Release|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Release|x64.Build.0 = Release|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Release|x86.ActiveCfg = Release|Any CPU + {A286B4B2-21EA-4356-8DA5-3581663CAFB7}.Release|x86.Build.0 = Release|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Debug|x64.ActiveCfg = Debug|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Debug|x64.Build.0 = Debug|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Debug|x86.ActiveCfg = Debug|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Debug|x86.Build.0 = Debug|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Release|Any CPU.Build.0 = Release|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Release|x64.ActiveCfg = Release|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Release|x64.Build.0 = Release|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Release|x86.ActiveCfg = Release|Any CPU + {A4A3212B-16D0-4914-8D45-D289F367D63C}.Release|x86.Build.0 = Release|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Debug|x64.ActiveCfg = Debug|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Debug|x64.Build.0 = Debug|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Debug|x86.ActiveCfg = Debug|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Debug|x86.Build.0 = Debug|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Release|Any CPU.Build.0 = Release|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Release|x64.ActiveCfg = Release|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Release|x64.Build.0 = Release|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Release|x86.ActiveCfg = Release|Any CPU + {934928B1-C064-4364-B68D-BB80CB67727E}.Release|x86.Build.0 = Release|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Debug|x64.ActiveCfg = Debug|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Debug|x64.Build.0 = Debug|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Debug|x86.ActiveCfg = Debug|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Debug|x86.Build.0 = Debug|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Release|Any CPU.ActiveCfg = Release|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Release|Any CPU.Build.0 = Release|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Release|x64.ActiveCfg = Release|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Release|x64.Build.0 = Release|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Release|x86.ActiveCfg = Release|Any CPU + {152749B0-DB84-4ED2-B154-9F66CD71BC32}.Release|x86.Build.0 = Release|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Debug|x64.ActiveCfg = Debug|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Debug|x64.Build.0 = Debug|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Debug|x86.ActiveCfg = Debug|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Debug|x86.Build.0 = Debug|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Release|Any CPU.Build.0 = Release|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Release|x64.ActiveCfg = Release|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Release|x64.Build.0 = Release|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Release|x86.ActiveCfg = Release|Any CPU + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468}.Release|x86.Build.0 = Release|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Debug|x64.ActiveCfg = Debug|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Debug|x64.Build.0 = Debug|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Debug|x86.ActiveCfg = Debug|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Debug|x86.Build.0 = Debug|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Release|Any CPU.Build.0 = Release|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Release|x64.ActiveCfg = Release|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Release|x64.Build.0 = Release|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Release|x86.ActiveCfg = Release|Any CPU + {5F1B9DD5-36A8-421A-B7F9-229C05793776}.Release|x86.Build.0 = Release|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Debug|x64.ActiveCfg = Debug|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Debug|x64.Build.0 = Debug|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Debug|x86.ActiveCfg = Debug|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Debug|x86.Build.0 = Debug|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Release|Any CPU.Build.0 = Release|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Release|x64.ActiveCfg = Release|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Release|x64.Build.0 = Release|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Release|x86.ActiveCfg = Release|Any CPU + {87964ABE-7F88-4EF5-92B3-934FC946432E}.Release|x86.Build.0 = Release|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Debug|x64.ActiveCfg = Debug|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Debug|x64.Build.0 = Debug|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Debug|x86.ActiveCfg = Debug|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Debug|x86.Build.0 = Debug|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Release|Any CPU.Build.0 = Release|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Release|x64.ActiveCfg = Release|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Release|x64.Build.0 = Release|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Release|x86.ActiveCfg = Release|Any CPU + {A2C1708B-0495-4E13-AF9D-CB300266A18A}.Release|x86.Build.0 = Release|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Debug|x64.ActiveCfg = Debug|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Debug|x64.Build.0 = Debug|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Debug|x86.ActiveCfg = Debug|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Debug|x86.Build.0 = Debug|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Release|Any CPU.Build.0 = Release|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Release|x64.ActiveCfg = Release|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Release|x64.Build.0 = Release|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Release|x86.ActiveCfg = Release|Any CPU + {9BEB8310-95C8-45AC-AFF1-C66154AC8828}.Release|x86.Build.0 = Release|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Debug|x64.ActiveCfg = Debug|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Debug|x64.Build.0 = Debug|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Debug|x86.ActiveCfg = Debug|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Debug|x86.Build.0 = Debug|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Release|Any CPU.Build.0 = Release|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Release|x64.ActiveCfg = Release|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Release|x64.Build.0 = Release|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Release|x86.ActiveCfg = Release|Any CPU + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Release|x86.Build.0 = Release|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|x64.Build.0 = Debug|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|x86.ActiveCfg = Debug|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|x86.Build.0 = Debug|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|Any CPU.Build.0 = Release|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|x64.ActiveCfg = Release|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|x64.Build.0 = Release|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|x86.ActiveCfg = Release|Any CPU + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|x86.Build.0 = Release|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Debug|x64.ActiveCfg = Debug|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Debug|x64.Build.0 = Debug|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Debug|x86.ActiveCfg = Debug|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Debug|x86.Build.0 = Debug|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Release|Any CPU.Build.0 = Release|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Release|x64.ActiveCfg = Release|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Release|x64.Build.0 = Release|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Release|x86.ActiveCfg = Release|Any CPU + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Release|x86.Build.0 = Release|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Debug|x64.ActiveCfg = Debug|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Debug|x64.Build.0 = Debug|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Debug|x86.ActiveCfg = Debug|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Debug|x86.Build.0 = Debug|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Release|Any CPU.Build.0 = Release|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Release|x64.ActiveCfg = Release|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Release|x64.Build.0 = Release|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Release|x86.ActiveCfg = Release|Any CPU + {AF293FAF-58DE-4433-8D02-8F7905F0233D}.Release|x86.Build.0 = Release|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Debug|x64.ActiveCfg = Debug|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Debug|x64.Build.0 = Debug|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Debug|x86.ActiveCfg = Debug|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Debug|x86.Build.0 = Debug|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Release|Any CPU.Build.0 = Release|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Release|x64.ActiveCfg = Release|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Release|x64.Build.0 = Release|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Release|x86.ActiveCfg = Release|Any CPU + {47336155-AA74-4FA0-98C5-23EBD68E644C}.Release|x86.Build.0 = Release|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Debug|x64.ActiveCfg = Debug|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Debug|x64.Build.0 = Debug|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Debug|x86.ActiveCfg = Debug|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Debug|x86.Build.0 = Debug|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Release|Any CPU.Build.0 = Release|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Release|x64.ActiveCfg = Release|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Release|x64.Build.0 = Release|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Release|x86.ActiveCfg = Release|Any CPU + {4B6A608B-CB4C-4947-9FDB-BADD545647D7}.Release|x86.Build.0 = Release|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Debug|x64.ActiveCfg = Debug|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Debug|x64.Build.0 = Debug|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Debug|x86.ActiveCfg = Debug|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Debug|x86.Build.0 = Debug|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Release|Any CPU.Build.0 = Release|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Release|x64.ActiveCfg = Release|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Release|x64.Build.0 = Release|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Release|x86.ActiveCfg = Release|Any CPU + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A}.Release|x86.Build.0 = Release|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Debug|x64.ActiveCfg = Debug|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Debug|x64.Build.0 = Debug|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Debug|x86.ActiveCfg = Debug|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Debug|x86.Build.0 = Debug|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Release|Any CPU.Build.0 = Release|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Release|x64.ActiveCfg = Release|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Release|x64.Build.0 = Release|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Release|x86.ActiveCfg = Release|Any CPU + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924}.Release|x86.Build.0 = Release|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Debug|x64.ActiveCfg = Debug|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Debug|x64.Build.0 = Debug|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Debug|x86.ActiveCfg = Debug|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Debug|x86.Build.0 = Debug|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Release|Any CPU.Build.0 = Release|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Release|x64.ActiveCfg = Release|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Release|x64.Build.0 = Release|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Release|x86.ActiveCfg = Release|Any CPU + {0AC12289-08F0-491F-9487-575867FFB84A}.Release|x86.Build.0 = Release|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Debug|x64.ActiveCfg = Debug|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Debug|x64.Build.0 = Debug|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Debug|x86.ActiveCfg = Debug|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Debug|x86.Build.0 = Debug|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Release|Any CPU.Build.0 = Release|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Release|x64.ActiveCfg = Release|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Release|x64.Build.0 = Release|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Release|x86.ActiveCfg = Release|Any CPU + {65C1645B-84A7-48DF-8419-371D68C52DC7}.Release|x86.Build.0 = Release|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Debug|x64.ActiveCfg = Debug|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Debug|x64.Build.0 = Debug|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Debug|x86.ActiveCfg = Debug|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Debug|x86.Build.0 = Debug|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Release|Any CPU.Build.0 = Release|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Release|x64.ActiveCfg = Release|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Release|x64.Build.0 = Release|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Release|x86.ActiveCfg = Release|Any CPU + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C}.Release|x86.Build.0 = Release|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Debug|x64.ActiveCfg = Debug|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Debug|x64.Build.0 = Debug|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Debug|x86.ActiveCfg = Debug|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Debug|x86.Build.0 = Debug|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Release|Any CPU.Build.0 = Release|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Release|x64.ActiveCfg = Release|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Release|x64.Build.0 = Release|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Release|x86.ActiveCfg = Release|Any CPU + {8A41DD64-04A2-4797-B833-039262932F82}.Release|x86.Build.0 = Release|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Debug|x64.ActiveCfg = Debug|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Debug|x64.Build.0 = Debug|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Debug|x86.ActiveCfg = Debug|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Debug|x86.Build.0 = Debug|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Release|Any CPU.Build.0 = Release|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Release|x64.ActiveCfg = Release|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Release|x64.Build.0 = Release|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Release|x86.ActiveCfg = Release|Any CPU + {FD406E23-BB03-4AD6-BAF5-403D51E694F3}.Release|x86.Build.0 = Release|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Debug|x64.ActiveCfg = Debug|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Debug|x64.Build.0 = Debug|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Debug|x86.ActiveCfg = Debug|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Debug|x86.Build.0 = Debug|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Release|Any CPU.Build.0 = Release|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Release|x64.ActiveCfg = Release|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Release|x64.Build.0 = Release|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Release|x86.ActiveCfg = Release|Any CPU + {764B0034-CBE8-462E-85DC-087C55EA762B}.Release|x86.Build.0 = Release|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Debug|x64.ActiveCfg = Debug|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Debug|x64.Build.0 = Debug|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Debug|x86.ActiveCfg = Debug|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Debug|x86.Build.0 = Debug|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Release|Any CPU.Build.0 = Release|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Release|x64.ActiveCfg = Release|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Release|x64.Build.0 = Release|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Release|x86.ActiveCfg = Release|Any CPU + {CEF202A9-5076-4652-876D-9CCEEB706436}.Release|x86.Build.0 = Release|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Debug|x64.ActiveCfg = Debug|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Debug|x64.Build.0 = Debug|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Debug|x86.ActiveCfg = Debug|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Debug|x86.Build.0 = Debug|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Release|Any CPU.Build.0 = Release|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Release|x64.ActiveCfg = Release|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Release|x64.Build.0 = Release|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Release|x86.ActiveCfg = Release|Any CPU + {6BE05A98-4E35-402F-B345-05E5B9D60B2D}.Release|x86.Build.0 = Release|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Debug|x64.ActiveCfg = Debug|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Debug|x64.Build.0 = Debug|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Debug|x86.ActiveCfg = Debug|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Debug|x86.Build.0 = Debug|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Release|Any CPU.Build.0 = Release|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Release|x64.ActiveCfg = Release|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Release|x64.Build.0 = Release|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Release|x86.ActiveCfg = Release|Any CPU + {088FF8BE-822F-4991-A84D-91B7D92F9FD0}.Release|x86.Build.0 = Release|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Debug|x64.ActiveCfg = Debug|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Debug|x64.Build.0 = Debug|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Debug|x86.ActiveCfg = Debug|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Debug|x86.Build.0 = Debug|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Release|Any CPU.Build.0 = Release|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Release|x64.ActiveCfg = Release|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Release|x64.Build.0 = Release|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Release|x86.ActiveCfg = Release|Any CPU + {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution - {E9D20575-536A-46B3-809E-B5646101017C} = {2037A937-74BD-4FE3-89FD-E57A64E8DE8D} - {43C4953B-5E21-4379-8027-2B26DFF973E3} = {E9D20575-536A-46B3-809E-B5646101017C} - {793410BA-C89D-4ADD-8E01-79801B863543} = {2037A937-74BD-4FE3-89FD-E57A64E8DE8D} - {D931A491-A305-4CFF-8AD1-52099678C63B} = {793410BA-C89D-4ADD-8E01-79801B863543} - {BFADCD54-BCBC-490C-AA34-33CADA228098} = {793410BA-C89D-4ADD-8E01-79801B863543} - {7823517A-5361-4DD0-904D-8811F12BF526} = {2037A937-74BD-4FE3-89FD-E57A64E8DE8D} - {C69158DD-174B-472B-BAA8-6D07A9285863} = {7823517A-5361-4DD0-904D-8811F12BF526} - {18F310DF-5C7E-40C8-8A1C-602B0B7195FB} = {7823517A-5361-4DD0-904D-8811F12BF526} - {74AD0097-E2CF-41E8-8167-8803E022B3BA} = {7823517A-5361-4DD0-904D-8811F12BF526} - {2759CF01-B7C1-44D9-A809-D2CB578BD614} = {7823517A-5361-4DD0-904D-8811F12BF526} - {47A58410-8EDB-4D40-9AA4-D646E55BCE37} = {7823517A-5361-4DD0-904D-8811F12BF526} - {17E9DF21-B764-4D8C-AF43-03A37E8869D9} = {79107360-DFF1-427F-A9FE-AA2B4E41BD7D} - {FCEFB904-9F2F-48E7-9A60-037BC910B41C} = {17E9DF21-B764-4D8C-AF43-03A37E8869D9} - {2AFA72E3-2B64-4019-BACC-E7B06C77FB5F} = {17E9DF21-B764-4D8C-AF43-03A37E8869D9} - {47F9DC7D-561E-40A8-AD61-D584D6C5A779} = {17E9DF21-B764-4D8C-AF43-03A37E8869D9} - {D3F167B8-2B1E-4F03-894D-949F0C067BB1} = {79107360-DFF1-427F-A9FE-AA2B4E41BD7D} - {35608298-A0A5-4155-B97F-506F7E6B55F2} = {D3F167B8-2B1E-4F03-894D-949F0C067BB1} - {485B2A72-882B-4BAD-B3EC-A33462946380} = {35608298-A0A5-4155-B97F-506F7E6B55F2} - {FAAF7C4A-8E8E-4F44-B411-7E37D32C3828} = {35608298-A0A5-4155-B97F-506F7E6B55F2} - {29D2C2D0-F721-49AC-9F49-B75BF4C0718C} = {35608298-A0A5-4155-B97F-506F7E6B55F2} - {63DCE53A-301C-4839-8290-963845B1AAF5} = {79107360-DFF1-427F-A9FE-AA2B4E41BD7D} - {D06540C0-566B-47E8-BDE0-69A979581998} = {79107360-DFF1-427F-A9FE-AA2B4E41BD7D} - {6A325815-461A-4C7E-9FDC-A3728481BFC6} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} - {FD843AEC-4B6B-4805-8C51-D2A96745F1B1} = {6A325815-461A-4C7E-9FDC-A3728481BFC6} - {748CAC4C-2882-451F-869E-0B3AC706A6E0} = {6A325815-461A-4C7E-9FDC-A3728481BFC6} - {33DF4BD4-DA98-4908-91DE-78F118EC919B} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} - {2BC229A8-583A-4E84-B6C6-857341AD7476} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} - {1E606BE0-639D-4F63-9CCE-D0AD21338CEE} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} - {D41A51A3-344C-487F-8FBE-64A01D874C7A} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} - {33549D2E-2B52-40E2-A38E-0ECCF2674A0E} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} - {569A487D-1F21-4E2C-A5E5-0F9CF7F47D70} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} - {C9F565AC-7C64-4C16-8045-0D64B4FC5FD2} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} - {59224801-62AC-47B5-866D-DDB7C8C80C34} = {AB55B1AF-204F-4343-9CB9-4898DCE28A05} - {7401D747-9190-4AA4-947E-FEF520B6D70E} = {17E9DF21-B764-4D8C-AF43-03A37E8869D9} + {22AC8398-C739-4359-8B45-E09525AA7412} = {CC979494-247D-4546-9B80-4A347F030FAF} + {42888BF1-6F80-4629-BCE2-F3C9739C6E4B} = {22AC8398-C739-4359-8B45-E09525AA7412} + {13AEE8DC-BDFF-4031-B95D-F65E70062A65} = {CC979494-247D-4546-9B80-4A347F030FAF} + {0182C7DB-3C8C-4FC6-9638-664A2E8625FE} = {13AEE8DC-BDFF-4031-B95D-F65E70062A65} + {0D9C7B03-2AC5-4EAC-8CEF-317309E8AD5A} = {13AEE8DC-BDFF-4031-B95D-F65E70062A65} + {519D726B-74FF-4CF6-928D-521ACC6B4D4A} = {CC979494-247D-4546-9B80-4A347F030FAF} + {F53FD4C8-8AB9-4BD9-88E9-9660D73422C1} = {519D726B-74FF-4CF6-928D-521ACC6B4D4A} + {A286B4B2-21EA-4356-8DA5-3581663CAFB7} = {F53FD4C8-8AB9-4BD9-88E9-9660D73422C1} + {A4A3212B-16D0-4914-8D45-D289F367D63C} = {F53FD4C8-8AB9-4BD9-88E9-9660D73422C1} + {934928B1-C064-4364-B68D-BB80CB67727E} = {F53FD4C8-8AB9-4BD9-88E9-9660D73422C1} + {82A9EAED-EDC6-4EBB-8921-E2D952EF5FE1} = {CC979494-247D-4546-9B80-4A347F030FAF} + {152749B0-DB84-4ED2-B154-9F66CD71BC32} = {82A9EAED-EDC6-4EBB-8921-E2D952EF5FE1} + {8E847A82-4B6D-4F7A-A72F-EA83DC4F7468} = {82A9EAED-EDC6-4EBB-8921-E2D952EF5FE1} + {5F1B9DD5-36A8-421A-B7F9-229C05793776} = {82A9EAED-EDC6-4EBB-8921-E2D952EF5FE1} + {87964ABE-7F88-4EF5-92B3-934FC946432E} = {82A9EAED-EDC6-4EBB-8921-E2D952EF5FE1} + {A2C1708B-0495-4E13-AF9D-CB300266A18A} = {82A9EAED-EDC6-4EBB-8921-E2D952EF5FE1} + {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} = {49803467-A2E3-43C2-8633-1477BD2713E7} + {9BEB8310-95C8-45AC-AFF1-C66154AC8828} = {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} + {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0} = {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} + {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF} = {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} + {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3} = {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} + {C93044C3-8C3B-4CA5-9508-B35049BDC72F} = {49803467-A2E3-43C2-8633-1477BD2713E7} + {65CD0ABC-FD16-4653-BCCE-E4D691C0F092} = {C93044C3-8C3B-4CA5-9508-B35049BDC72F} + {AF293FAF-58DE-4433-8D02-8F7905F0233D} = {65CD0ABC-FD16-4653-BCCE-E4D691C0F092} + {47336155-AA74-4FA0-98C5-23EBD68E644C} = {65CD0ABC-FD16-4653-BCCE-E4D691C0F092} + {4B6A608B-CB4C-4947-9FDB-BADD545647D7} = {65CD0ABC-FD16-4653-BCCE-E4D691C0F092} + {25C53E1C-DA00-4DC3-B1E1-B0D65C5BC84A} = {49803467-A2E3-43C2-8633-1477BD2713E7} + {FA2AAC82-AAAF-49E4-A26E-097D98BAE924} = {49803467-A2E3-43C2-8633-1477BD2713E7} + {10E90681-4304-4E2B-A3B2-7E1F39B3A373} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} + {0AC12289-08F0-491F-9487-575867FFB84A} = {10E90681-4304-4E2B-A3B2-7E1F39B3A373} + {65C1645B-84A7-48DF-8419-371D68C52DC7} = {10E90681-4304-4E2B-A3B2-7E1F39B3A373} + {5BA5C2D6-91BA-4DE6-8DB2-5B1F0B42F10C} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} + {8A41DD64-04A2-4797-B833-039262932F82} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} + {FD406E23-BB03-4AD6-BAF5-403D51E694F3} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} + {764B0034-CBE8-462E-85DC-087C55EA762B} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} + {CEF202A9-5076-4652-876D-9CCEEB706436} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} + {6BE05A98-4E35-402F-B345-05E5B9D60B2D} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} + {088FF8BE-822F-4991-A84D-91B7D92F9FD0} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} + {41B9D566-D271-4BC1-9892-6474BCCBBC12} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} EndGlobalSection EndGlobal diff --git a/samples/MassTransit/RabbitMQ/PureSender/Program.cs b/samples/MassTransit/RabbitMQ/PureSender/Program.cs new file mode 100644 index 0000000..fa9c319 --- /dev/null +++ b/samples/MassTransit/RabbitMQ/PureSender/Program.cs @@ -0,0 +1,47 @@ +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Nybus; +using Nybus.Configuration; +using Nybus.MassTransit; +using Types; + +namespace PureSender +{ + class Program + { + static async Task Main(string[] args) + { + var services = new ServiceCollection(); + + services.AddLogging(logging => logging.AddConsole().SetMinimumLevel(LogLevel.Trace)); + + services.AddNybus(nybus => + { + nybus.UseBusEngine(); + + nybus.SubscribeToEvent(async (dispatcher, context) => + { + await Console.Out.WriteLineAsync($"Something was done: {context.Event.WhatWasDone}"); + }); + }); + + var serviceProvider = services.BuildServiceProvider(); + + var host = serviceProvider.GetRequiredService(); + + await host.StartAsync(); + + await host.Bus.InvokeCommandAsync(new DoSomethingCommand + { + WhatToDo = "Whatever you want" + }); + + Console.WriteLine("Press ENTER to exit..."); + Console.ReadLine(); + + await host.StopAsync(); + } + } +} diff --git a/samples/MassTransit/RabbitMQ/PureSender/PureSender.csproj b/samples/MassTransit/RabbitMQ/PureSender/PureSender.csproj new file mode 100644 index 0000000..647d4b2 --- /dev/null +++ b/samples/MassTransit/RabbitMQ/PureSender/PureSender.csproj @@ -0,0 +1,19 @@ + + + + + + + + + + Exe + netcoreapp2.2 + latest + + + + + + + diff --git a/samples/MassTransit/RabbitMQ/Receiver/Program.cs b/samples/MassTransit/RabbitMQ/Receiver/Program.cs new file mode 100644 index 0000000..531d491 --- /dev/null +++ b/samples/MassTransit/RabbitMQ/Receiver/Program.cs @@ -0,0 +1,47 @@ +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Nybus; +using Nybus.Configuration; +using Nybus.MassTransit; +using Types; + +namespace Receiver +{ + class Program + { + static async Task Main(string[] args) + { + var services = new ServiceCollection(); + + services.AddLogging(logging => logging.AddConsole().SetMinimumLevel(LogLevel.Trace)); + + services.AddNybus(nybus => + { + nybus.UseBusEngine(); + + nybus.SubscribeToCommand(async (dispatcher, context) => + { + await Console.Out.WriteLineAsync($"Doing something: {context.Command.WhatToDo}"); + + await dispatcher.RaiseEventAsync(new SomethingDoneEvent + { + WhatWasDone = context.Command.WhatToDo + }); + }); + }); + + var serviceProvider = services.BuildServiceProvider(); + + var host = serviceProvider.GetRequiredService(); + + await host.StartAsync(); + + Console.WriteLine("Press ENTER to exit..."); + Console.ReadLine(); + + await host.StopAsync(); + } + } +} diff --git a/samples/MassTransit/RabbitMQ/Receiver/Receiver.csproj b/samples/MassTransit/RabbitMQ/Receiver/Receiver.csproj new file mode 100644 index 0000000..647d4b2 --- /dev/null +++ b/samples/MassTransit/RabbitMQ/Receiver/Receiver.csproj @@ -0,0 +1,19 @@ + + + + + + + + + + Exe + netcoreapp2.2 + latest + + + + + + + diff --git a/samples/MassTransit/RabbitMQ/Types/Types.cs b/samples/MassTransit/RabbitMQ/Types/Types.cs new file mode 100644 index 0000000..5d8530e --- /dev/null +++ b/samples/MassTransit/RabbitMQ/Types/Types.cs @@ -0,0 +1,15 @@ +using System; +using Nybus; + +namespace Types +{ + public class DoSomethingCommand : ICommand + { + public string WhatToDo { get; set; } + } + + public class SomethingDoneEvent : IEvent + { + public string WhatWasDone { get; set; } + } +} diff --git a/samples/MassTransit/RabbitMQ/Types/Types.csproj b/samples/MassTransit/RabbitMQ/Types/Types.csproj new file mode 100644 index 0000000..74b4c70 --- /dev/null +++ b/samples/MassTransit/RabbitMQ/Types/Types.csproj @@ -0,0 +1,11 @@ + + + + + + + + netstandard2.0 + + + diff --git a/src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs b/src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs index d97c3bd..8e7016c 100644 --- a/src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs +++ b/src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs @@ -1,30 +1,179 @@ using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Reactive.Subjects; using System.Threading.Tasks; +using MassTransit; +using MassTransit.RabbitMqTransport; namespace Nybus.MassTransit { public class MassTransitBusEngine : IBusEngine { - public Task> StartAsync() => throw new NotImplementedException(); + private readonly List> _busFactoryConfigurators = new List>(); - public Task StopAsync() => throw new NotImplementedException(); + private readonly Subject _messages = new Subject(); + + private BusHandle _busHandle; + private IBusControl _busControl; + + public async Task> StartAsync() + { + if (_commandEndpointConfigurators.Any()) + { + _busFactoryConfigurators.Add(ConfigureCommandQueue); + } + + if (_eventEndpointConfigurators.Any()) + { + _busFactoryConfigurators.Add(ConfigureEventQueue); + } + + _busControl = RabbitMqBusFactory.Create(configurator => + { + configurator.Host(new Uri("rabbitmq://localhost"), host => + { + host.Username("guest"); + host.Password("guest"); + }); + + foreach (var configuration in _busFactoryConfigurators) + { + configuration(configurator); + } + }); + + _busHandle = await _busControl.StartAsync(); + + return _messages; + } + + private void ConfigureCommandQueue(IRabbitMqBusFactoryConfigurator configurator) + { + configurator.ReceiveEndpoint("command-queue", endpoint => + { + foreach (var endpointConfigurator in _commandEndpointConfigurators) + { + endpointConfigurator(endpoint); + } + }); + } + + private void ConfigureEventQueue(IRabbitMqBusFactoryConfigurator configurator) + { + configurator.ReceiveEndpoint("event-queue", endpoint => + { + foreach (var endpointConfigurator in _eventEndpointConfigurators) + { + endpointConfigurator(endpoint); + } + }); + } + + public async Task StopAsync() + { + await _busHandle.StopAsync(); + } + + private readonly List> _commandEndpointConfigurators = new List>(); + + private readonly IDictionary> _processingMessages = new ConcurrentDictionary>(); public void SubscribeToCommand() where TCommand : class, ICommand { - throw new NotImplementedException(); + _commandEndpointConfigurators.Add(item => item.Handler(AddCommandMessage)); } + private async Task AddCommandMessage(ConsumeContext context) + where TCommand : class, ICommand + { + _messages.OnNext(CreateMessage()); + + _processingMessages.Add(MessageId(context), new TaskCompletionSource()); + + await _processingMessages[MessageId(context)].Task; + + CommandMessage CreateMessage() + { + return new CommandMessage + { + MessageId = MessageId(context), + Command = context.Message, + Headers = new HeaderBag + { + CorrelationId = context.CorrelationId ?? Guid.Empty, + SentOn = new DateTimeOffset(context.SentTime.GetValueOrDefault(), TimeSpan.Zero) + } + }; + } + } + + private readonly List> _eventEndpointConfigurators = new List>(); + public void SubscribeToEvent() where TEvent : class, IEvent { - throw new NotImplementedException(); + _eventEndpointConfigurators.Add(item => item.Handler(AddEventMessage)); + } + + private async Task AddEventMessage(ConsumeContext context) + where TEvent : class, IEvent + { + _messages.OnNext(CreateMessage()); + + _processingMessages.Add(MessageId(context), new TaskCompletionSource()); + + await _processingMessages[MessageId(context)].Task; + + EventMessage CreateMessage() + { + return new EventMessage + { + MessageId = MessageId(context), + Event = context.Message, + Headers = new HeaderBag + { + CorrelationId = context.CorrelationId ?? Guid.Empty, + SentOn = new DateTimeOffset(context.SentTime.GetValueOrDefault(), TimeSpan.Zero) + } + }; + } + } + + private static string Nybus(string key) => $"Nybus:{key}"; + + private static string MessageId(ConsumeContext context) => context.MessageId?.ToNewId().ToString(); + + public Task SendMessageAsync(Message message) + { + return _busControl.Publish(message.Item, message.Type, context => + { + context.CorrelationId = message.Headers.CorrelationId; + }); } - public Task SendMessageAsync(Message message) => throw new NotImplementedException(); + public Task NotifySuccessAsync(Message message) + { + if (_processingMessages.TryGetValue(message.MessageId, out var tcs)) + { + tcs.TrySetResult(null); + _processingMessages.Remove(message.MessageId); + } - public Task NotifySuccessAsync(Message message) => throw new NotImplementedException(); + return Task.CompletedTask; + } - public Task NotifyFailAsync(Message message) => throw new NotImplementedException(); + public Task NotifyFailAsync(Message message) + { + if (_processingMessages.TryGetValue(message.MessageId, out var tcs)) + { + tcs.TrySetException(new Exception("An error occurred while processing the message")); + _processingMessages.Remove(message.MessageId); + } + + return Task.CompletedTask; + } } } diff --git a/src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj b/src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj index 4f15d0e..f4796c4 100644 --- a/src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj +++ b/src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj @@ -13,7 +13,8 @@ - + + From c66c1885f83c1efc2fa76532b8530fa2dd7468e1 Mon Sep 17 00:00:00 2001 From: Renato Golia Date: Tue, 1 Oct 2019 23:52:25 +0200 Subject: [PATCH 3/5] Renamed to Nybus.Engine.MassTransit.RabbitMq --- Nybus.sln | 30 +++++++++---------- .../RabbitMQ/PureSender/PureSender.csproj | 2 +- .../RabbitMQ/Receiver/Receiver.csproj | 2 +- .../MassTransit/MassTransitBusEngine.cs | 0 .../Nybus.Engine.MassTransit.RabbitMq.csproj} | 0 5 files changed, 17 insertions(+), 17 deletions(-) rename src/engines/{Nybus.Engine.MassTransit => Nybus.Engine.MassTransit.RabbitMq}/MassTransit/MassTransitBusEngine.cs (100%) rename src/engines/{Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj => Nybus.Engine.MassTransit.RabbitMq/Nybus.Engine.MassTransit.RabbitMq.csproj} (100%) diff --git a/Nybus.sln b/Nybus.sln index 88e7099..7d4e735 100644 --- a/Nybus.sln +++ b/Nybus.sln @@ -45,8 +45,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.AWS", "src\eng EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.InMemory", "src\engines\Nybus.Engine.InMemory\Nybus.Engine.InMemory.csproj", "{003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.MassTransit", "src\engines\Nybus.Engine.MassTransit\Nybus.Engine.MassTransit.csproj", "{ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.RabbitMq", "src\engines\Nybus.Engine.RabbitMq\Nybus.Engine.RabbitMq.csproj", "{C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "extensions", "extensions", "{C93044C3-8C3B-4CA5-9508-B35049BDC72F}" @@ -87,6 +85,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Nybus.Extensions.Host EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtils", "tests\TestUtils\TestUtils.csproj", "{41B9D566-D271-4BC1-9892-6474BCCBBC12}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nybus.Engine.MassTransit.RabbitMq", "src\engines\Nybus.Engine.MassTransit.RabbitMq\Nybus.Engine.MassTransit.RabbitMq.csproj", "{BD60C44B-44A9-41DD-853A-01C768670753}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -256,18 +256,6 @@ Global {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Release|x64.Build.0 = Release|Any CPU {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Release|x86.ActiveCfg = Release|Any CPU {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0}.Release|x86.Build.0 = Release|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|x64.ActiveCfg = Debug|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|x64.Build.0 = Debug|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|x86.ActiveCfg = Debug|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Debug|x86.Build.0 = Debug|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|Any CPU.Build.0 = Release|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|x64.ActiveCfg = Release|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|x64.Build.0 = Release|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|x86.ActiveCfg = Release|Any CPU - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF}.Release|x86.Build.0 = Release|Any CPU {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Debug|Any CPU.Build.0 = Debug|Any CPU {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -460,6 +448,18 @@ Global {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Release|x64.Build.0 = Release|Any CPU {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Release|x86.ActiveCfg = Release|Any CPU {41B9D566-D271-4BC1-9892-6474BCCBBC12}.Release|x86.Build.0 = Release|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Debug|x64.ActiveCfg = Debug|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Debug|x64.Build.0 = Debug|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Debug|x86.ActiveCfg = Debug|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Debug|x86.Build.0 = Debug|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Release|Any CPU.Build.0 = Release|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Release|x64.ActiveCfg = Release|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Release|x64.Build.0 = Release|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Release|x86.ActiveCfg = Release|Any CPU + {BD60C44B-44A9-41DD-853A-01C768670753}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {22AC8398-C739-4359-8B45-E09525AA7412} = {CC979494-247D-4546-9B80-4A347F030FAF} @@ -481,7 +481,6 @@ Global {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} = {49803467-A2E3-43C2-8633-1477BD2713E7} {9BEB8310-95C8-45AC-AFF1-C66154AC8828} = {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} {003EFF00-B3D0-4FE5-9C7A-480FA7D0C9A0} = {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} - {ADD8D97C-8F8E-41BE-8394-2E55DF052EAF} = {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} {C8D9CAF5-9318-47B5-BB55-541F67C2C5D3} = {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} {C93044C3-8C3B-4CA5-9508-B35049BDC72F} = {49803467-A2E3-43C2-8633-1477BD2713E7} {65CD0ABC-FD16-4653-BCCE-E4D691C0F092} = {C93044C3-8C3B-4CA5-9508-B35049BDC72F} @@ -501,5 +500,6 @@ Global {6BE05A98-4E35-402F-B345-05E5B9D60B2D} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} {088FF8BE-822F-4991-A84D-91B7D92F9FD0} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} {41B9D566-D271-4BC1-9892-6474BCCBBC12} = {F19D8CBF-CB02-424C-8D30-A594D04C38AA} + {BD60C44B-44A9-41DD-853A-01C768670753} = {F488F7D4-4A04-45F0-A6E4-F9B85DD4D3FF} EndGlobalSection EndGlobal diff --git a/samples/MassTransit/RabbitMQ/PureSender/PureSender.csproj b/samples/MassTransit/RabbitMQ/PureSender/PureSender.csproj index 647d4b2..798c11b 100644 --- a/samples/MassTransit/RabbitMQ/PureSender/PureSender.csproj +++ b/samples/MassTransit/RabbitMQ/PureSender/PureSender.csproj @@ -3,7 +3,7 @@ - + diff --git a/samples/MassTransit/RabbitMQ/Receiver/Receiver.csproj b/samples/MassTransit/RabbitMQ/Receiver/Receiver.csproj index 647d4b2..798c11b 100644 --- a/samples/MassTransit/RabbitMQ/Receiver/Receiver.csproj +++ b/samples/MassTransit/RabbitMQ/Receiver/Receiver.csproj @@ -3,7 +3,7 @@ - + diff --git a/src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs b/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/MassTransitBusEngine.cs similarity index 100% rename from src/engines/Nybus.Engine.MassTransit/MassTransit/MassTransitBusEngine.cs rename to src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/MassTransitBusEngine.cs diff --git a/src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj b/src/engines/Nybus.Engine.MassTransit.RabbitMq/Nybus.Engine.MassTransit.RabbitMq.csproj similarity index 100% rename from src/engines/Nybus.Engine.MassTransit/Nybus.Engine.MassTransit.csproj rename to src/engines/Nybus.Engine.MassTransit.RabbitMq/Nybus.Engine.MassTransit.RabbitMq.csproj From 0d6bc772f1ca698e8a345dfbff18d21d07e17303 Mon Sep 17 00:00:00 2001 From: Renato Golia Date: Wed, 2 Oct 2019 00:50:04 +0200 Subject: [PATCH 4/5] Refactor 0001 --- .../RabbitMQ/PureSender/Program.cs | 2 +- .../MassTransit/RabbitMQ/Receiver/Program.cs | 5 +- .../IMassTransitRabbitMqConfigurator.cs | 10 ++ .../MassTransitRabbitMqBusEngine.cs} | 105 +++++++++++++----- ...ssTransitRabbitMqConfiguratorExtensions.cs | 19 ++++ 5 files changed, 109 insertions(+), 32 deletions(-) create mode 100644 src/engines/Nybus.Engine.MassTransit.RabbitMq/Configuration/IMassTransitRabbitMqConfigurator.cs rename src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/{MassTransitBusEngine.cs => RabbitMq/MassTransitRabbitMqBusEngine.cs} (61%) create mode 100644 src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransitRabbitMqConfiguratorExtensions.cs diff --git a/samples/MassTransit/RabbitMQ/PureSender/Program.cs b/samples/MassTransit/RabbitMQ/PureSender/Program.cs index fa9c319..1de4e95 100644 --- a/samples/MassTransit/RabbitMQ/PureSender/Program.cs +++ b/samples/MassTransit/RabbitMQ/PureSender/Program.cs @@ -19,7 +19,7 @@ static async Task Main(string[] args) services.AddNybus(nybus => { - nybus.UseBusEngine(); + nybus.UseMassTransitWithRabbitMq(); nybus.SubscribeToEvent(async (dispatcher, context) => { diff --git a/samples/MassTransit/RabbitMQ/Receiver/Program.cs b/samples/MassTransit/RabbitMQ/Receiver/Program.cs index 531d491..ac6d600 100644 --- a/samples/MassTransit/RabbitMQ/Receiver/Program.cs +++ b/samples/MassTransit/RabbitMQ/Receiver/Program.cs @@ -19,7 +19,10 @@ static async Task Main(string[] args) services.AddNybus(nybus => { - nybus.UseBusEngine(); + nybus.UseMassTransitWithRabbitMq(mt => + { + + }); nybus.SubscribeToCommand(async (dispatcher, context) => { diff --git a/src/engines/Nybus.Engine.MassTransit.RabbitMq/Configuration/IMassTransitRabbitMqConfigurator.cs b/src/engines/Nybus.Engine.MassTransit.RabbitMq/Configuration/IMassTransitRabbitMqConfigurator.cs new file mode 100644 index 0000000..96cc3f0 --- /dev/null +++ b/src/engines/Nybus.Engine.MassTransit.RabbitMq/Configuration/IMassTransitRabbitMqConfigurator.cs @@ -0,0 +1,10 @@ +using System; +using MassTransit.RabbitMqTransport; + +namespace Nybus.Configuration +{ + public interface IMassTransitRabbitMqConfigurator + { + void Configure(Action configureBus); + } +} \ No newline at end of file diff --git a/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/MassTransitBusEngine.cs b/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/RabbitMq/MassTransitRabbitMqBusEngine.cs similarity index 61% rename from src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/MassTransitBusEngine.cs rename to src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/RabbitMq/MassTransitRabbitMqBusEngine.cs index 8e7016c..b58c29d 100644 --- a/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/MassTransitBusEngine.cs +++ b/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/RabbitMq/MassTransitRabbitMqBusEngine.cs @@ -7,46 +7,56 @@ using MassTransit; using MassTransit.RabbitMqTransport; -namespace Nybus.MassTransit +namespace Nybus.MassTransit.RabbitMq { - public class MassTransitBusEngine : IBusEngine + public interface IMassTransitRabbitMqBusBuilder { - private readonly List> _busFactoryConfigurators = new List>(); + void AddConfiguration(Action configuration); - private readonly Subject _messages = new Subject(); + IBusControl BuildBus(); - private BusHandle _busHandle; - private IBusControl _busControl; + void SubscribeToCommand(MessageHandler handler) + where TCommand : class, ICommand; - public async Task> StartAsync() + void SubscribeToEvent(MessageHandler handler) + where TEvent : class, IEvent; + } + + public class MassTransitRabbitMqBusBuilder : IMassTransitRabbitMqBusBuilder + { + private readonly IList> _configurations = new List>(); + private readonly IList> _commandEndpointConfigurators = new List>(); + private readonly IList> _eventEndpointConfigurators = new List>(); + + public void AddConfiguration(Action configuration) + { + if (configuration == null) + { + throw new ArgumentNullException(nameof(configuration)); + } + + _configurations.Add(configuration); + } + + public IBusControl BuildBus() { if (_commandEndpointConfigurators.Any()) { - _busFactoryConfigurators.Add(ConfigureCommandQueue); + _configurations.Add(ConfigureCommandQueue); } if (_eventEndpointConfigurators.Any()) { - _busFactoryConfigurators.Add(ConfigureEventQueue); + _configurations.Add(ConfigureEventQueue); } - _busControl = RabbitMqBusFactory.Create(configurator => + return RabbitMqBusFactory.Create(configurator => { - configurator.Host(new Uri("rabbitmq://localhost"), host => - { - host.Username("guest"); - host.Password("guest"); - }); - - foreach (var configuration in _busFactoryConfigurators) + foreach (var configuration in _configurations) { configuration(configurator); } }); - - _busHandle = await _busControl.StartAsync(); - - return _messages; } private void ConfigureCommandQueue(IRabbitMqBusFactoryConfigurator configurator) @@ -71,22 +81,59 @@ private void ConfigureEventQueue(IRabbitMqBusFactoryConfigurator configurator) }); } - public async Task StopAsync() + public void SubscribeToCommand(MessageHandler handler) + where TCommand : class, ICommand { - await _busHandle.StopAsync(); + _commandEndpointConfigurators.Add(item => item.Handler(handler)); } - private readonly List> _commandEndpointConfigurators = new List>(); + public void SubscribeToEvent(MessageHandler handler) + where TEvent : class, IEvent + { + _eventEndpointConfigurators.Add(item => item.Handler(handler)); + } + } + + public class MassTransitRabbitMqBusEngine : IBusEngine + { + private readonly IMassTransitRabbitMqBusBuilder _busBuilder; + private readonly ISubject _messages = new Subject(); + private IBusControl _busControl; + + public MassTransitRabbitMqBusEngine(IMassTransitRabbitMqBusBuilder busBuilder) + { + _busBuilder = busBuilder ?? throw new ArgumentNullException(nameof(busBuilder)); + } + + public async Task> StartAsync() + { + _busBuilder.AddConfiguration(configurator => configurator.Host(new Uri("rabbitmq://localhost"), host => + { + host.Username("guest"); + host.Password("guest"); + })); + + _busControl = _busBuilder.BuildBus(); + + await _busControl.StartAsync(); + + return _messages; + } + + public async Task StopAsync() + { + await _busControl.StopAsync(); + } private readonly IDictionary> _processingMessages = new ConcurrentDictionary>(); public void SubscribeToCommand() where TCommand : class, ICommand { - _commandEndpointConfigurators.Add(item => item.Handler(AddCommandMessage)); + _busBuilder.SubscribeToCommand(ProcessCommandMessage); } - private async Task AddCommandMessage(ConsumeContext context) + private async Task ProcessCommandMessage(ConsumeContext context) where TCommand : class, ICommand { _messages.OnNext(CreateMessage()); @@ -110,15 +157,13 @@ CommandMessage CreateMessage() } } - private readonly List> _eventEndpointConfigurators = new List>(); - public void SubscribeToEvent() where TEvent : class, IEvent { - _eventEndpointConfigurators.Add(item => item.Handler(AddEventMessage)); + _busBuilder.SubscribeToEvent(ProcessEventMessage); } - private async Task AddEventMessage(ConsumeContext context) + private async Task ProcessEventMessage(ConsumeContext context) where TEvent : class, IEvent { _messages.OnNext(CreateMessage()); diff --git a/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransitRabbitMqConfiguratorExtensions.cs b/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransitRabbitMqConfiguratorExtensions.cs new file mode 100644 index 0000000..1772c1b --- /dev/null +++ b/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransitRabbitMqConfiguratorExtensions.cs @@ -0,0 +1,19 @@ +using System; +using Microsoft.Extensions.DependencyInjection; +using Nybus.Configuration; +using Nybus.MassTransit; +using Nybus.MassTransit.RabbitMq; + +namespace Nybus +{ + public static class MassTransitRabbitMqConfiguratorExtensions + { + public static void UseMassTransitWithRabbitMq(this INybusConfigurator nybus, Action configure = null) + { + nybus.AddServiceConfiguration(svc => svc.AddSingleton()); + + nybus.UseBusEngine(); + } + + } +} \ No newline at end of file From eac1541277360e2682e451dfb9ab7409522037a1 Mon Sep 17 00:00:00 2001 From: Renato Golia Date: Mon, 7 Oct 2019 16:45:33 +0200 Subject: [PATCH 5/5] Work on configuration bits --- .../RabbitMQ/PureSender/Program.cs | 13 +++++- .../MassTransit/RabbitMQ/Receiver/Program.cs | 14 ++++-- .../IMassTransitRabbitMqConfigurator.cs | 44 ++++++++++++++++++- .../RabbitMq/MassTransitRabbitMqBusEngine.cs | 8 +--- ...ssTransitRabbitMqConfiguratorExtensions.cs | 8 ++-- 5 files changed, 71 insertions(+), 16 deletions(-) diff --git a/samples/MassTransit/RabbitMQ/PureSender/Program.cs b/samples/MassTransit/RabbitMQ/PureSender/Program.cs index 1de4e95..eaa9ee0 100644 --- a/samples/MassTransit/RabbitMQ/PureSender/Program.cs +++ b/samples/MassTransit/RabbitMQ/PureSender/Program.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using MassTransit; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Nybus; @@ -19,7 +20,17 @@ static async Task Main(string[] args) services.AddNybus(nybus => { - nybus.UseMassTransitWithRabbitMq(); + nybus.UseMassTransitWithRabbitMq(c => + { + c.ConfigureMassTransit(mt => + { + mt.Host(new Uri("rabbitmq://localhost"), h => + { + h.Username("guest"); + h.Password("guest"); + }); + }); + }); nybus.SubscribeToEvent(async (dispatcher, context) => { diff --git a/samples/MassTransit/RabbitMQ/Receiver/Program.cs b/samples/MassTransit/RabbitMQ/Receiver/Program.cs index ac6d600..f8d66b1 100644 --- a/samples/MassTransit/RabbitMQ/Receiver/Program.cs +++ b/samples/MassTransit/RabbitMQ/Receiver/Program.cs @@ -1,10 +1,9 @@ using System; using System.Threading.Tasks; +using MassTransit; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Nybus; -using Nybus.Configuration; -using Nybus.MassTransit; using Types; namespace Receiver @@ -19,9 +18,16 @@ static async Task Main(string[] args) services.AddNybus(nybus => { - nybus.UseMassTransitWithRabbitMq(mt => + nybus.UseMassTransitWithRabbitMq(c => { - + c.ConfigureMassTransit(mt => + { + mt.Host(new Uri("rabbitmq://localhost"), h => + { + h.Username("guest"); + h.Password("guest"); + }); + }); }); nybus.SubscribeToCommand(async (dispatcher, context) => diff --git a/src/engines/Nybus.Engine.MassTransit.RabbitMq/Configuration/IMassTransitRabbitMqConfigurator.cs b/src/engines/Nybus.Engine.MassTransit.RabbitMq/Configuration/IMassTransitRabbitMqConfigurator.cs index 96cc3f0..e59c94d 100644 --- a/src/engines/Nybus.Engine.MassTransit.RabbitMq/Configuration/IMassTransitRabbitMqConfigurator.cs +++ b/src/engines/Nybus.Engine.MassTransit.RabbitMq/Configuration/IMassTransitRabbitMqConfigurator.cs @@ -1,10 +1,52 @@ using System; +using System.Collections; +using System.Collections.Generic; using MassTransit.RabbitMqTransport; +using Microsoft.Extensions.DependencyInjection; +using Nybus.MassTransit.RabbitMq; namespace Nybus.Configuration { public interface IMassTransitRabbitMqConfigurator { - void Configure(Action configureBus); + void ConfigureMassTransit(Action configureMassTransit); + + //void UseConfiguration(string sectionName = "MassTransit"); + + + } + + public class MassTransitRabbitMqConfigurator : IMassTransitRabbitMqConfigurator + { + private readonly IList> _configurationActions = new List>(); + + public void ConfigureMassTransit(Action configureMassTransit) + { + if (configureMassTransit == null) + { + throw new ArgumentNullException(nameof(configureMassTransit)); + } + + _configurationActions.Add(configureMassTransit); + } + + private string _configurationSectionName; + + public void UseConfiguration(string sectionName = "MassTransit") + { + _configurationSectionName = sectionName ?? throw new ArgumentNullException(nameof(sectionName)); + } + + public void Apply(INybusConfigurator nybus) + { + var busBuilder = new MassTransitRabbitMqBusBuilder(); + + foreach (var action in _configurationActions) + { + busBuilder.AddConfiguration(action); + } + + nybus.AddServiceConfiguration(svc => svc.AddSingleton(busBuilder)); + } } } \ No newline at end of file diff --git a/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/RabbitMq/MassTransitRabbitMqBusEngine.cs b/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/RabbitMq/MassTransitRabbitMqBusEngine.cs index b58c29d..d32de54 100644 --- a/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/RabbitMq/MassTransitRabbitMqBusEngine.cs +++ b/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransit/RabbitMq/MassTransitRabbitMqBusEngine.cs @@ -107,15 +107,9 @@ public MassTransitRabbitMqBusEngine(IMassTransitRabbitMqBusBuilder busBuilder) public async Task> StartAsync() { - _busBuilder.AddConfiguration(configurator => configurator.Host(new Uri("rabbitmq://localhost"), host => - { - host.Username("guest"); - host.Password("guest"); - })); - _busControl = _busBuilder.BuildBus(); - await _busControl.StartAsync(); + await _busControl.StartAsync().ConfigureAwait(false); return _messages; } diff --git a/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransitRabbitMqConfiguratorExtensions.cs b/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransitRabbitMqConfiguratorExtensions.cs index 1772c1b..e8f1cce 100644 --- a/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransitRabbitMqConfiguratorExtensions.cs +++ b/src/engines/Nybus.Engine.MassTransit.RabbitMq/MassTransitRabbitMqConfiguratorExtensions.cs @@ -1,7 +1,5 @@ using System; -using Microsoft.Extensions.DependencyInjection; using Nybus.Configuration; -using Nybus.MassTransit; using Nybus.MassTransit.RabbitMq; namespace Nybus @@ -10,7 +8,11 @@ public static class MassTransitRabbitMqConfiguratorExtensions { public static void UseMassTransitWithRabbitMq(this INybusConfigurator nybus, Action configure = null) { - nybus.AddServiceConfiguration(svc => svc.AddSingleton()); + var configurator = new MassTransitRabbitMqConfigurator(); + + configure?.Invoke(configurator); + + configurator.Apply(nybus); nybus.UseBusEngine(); }