コード例 #1
0
        private static async void SendCommand(IBusControl bus, Uri sendToUri)
        {
            var endPoint = await bus.GetSendEndpoint(sendToUri);

            var command = new GreetingCommand()
            {
                Id       = Guid.NewGuid(),
                DateTime = DateTime.Now
            };

            await endPoint.Send(command);

            Console.WriteLine($"send command:id={command.Id},{command.DateTime}");
        }
コード例 #2
0
        private static void Main(string[] args)
        {
            //var dbPath = Path.Combine(Path.GetDirectoryName(typeof(GreetingCommandHandler).GetTypeInfo().Assembly.GetName().FullName), "App_Data\\CommandStore.sdf");
            //var connectionString = "DataSource=\"" + dbPath + "\"";
            string connectionString = "";
            var    configuration    = new MsSqlCommandStoreConfiguration(connectionString, "Commands");
            var    commandStore     = new MsSqlCommandStore(configuration);

            var registry = new SubscriberRegistry();

            registry.Register <GreetingCommand, GreetingCommandHandler>();

            var tinyIoCContainer = new TinyIoCContainer();

            tinyIoCContainer.Register <IHandleRequests <GreetingCommand>, GreetingCommandHandler>();
            tinyIoCContainer.Register <IAmACommandStore>(commandStore);

            var builder = CommandProcessorBuilder.With()
                          .Handlers(new HandlerConfiguration(
                                        subscriberRegistry: registry,
                                        handlerFactory: new TinyIocHandlerFactory(tinyIoCContainer)
                                        ))
                          .DefaultPolicy()
                          .NoTaskQueues()
                          .RequestContextFactory(new InMemoryRequestContextFactory());

            var commandProcessor = builder.Build();

            var greetingCommand = new GreetingCommand("Ian");

            commandProcessor.Send(greetingCommand);

            var retrievedCommand = commandStore.Get <GreetingCommand>(greetingCommand.Id);

            var commandAsJson = JsonConvert.SerializeObject(retrievedCommand);

            Console.WriteLine(string.Format("Command retrieved from store: {0}", commandAsJson));

            Console.ReadLine();
        }