public void RunCommandWithPipeline()
        {
            var piplinesService = new DefaultMessagePipelineService();

            piplinesService.ServiceProvider = new FuncServiceProvider(InterfacesResolver);
            piplinesService.PipelineContainer.AddCommandPipeline()
            .AddMiddleware(new Commands.PipelineMiddlewares.CommandHandlerLocatorMiddleware(
                               typeof(CreateUserCommand).GetTypeInfo().Assembly))
            .AddMiddleware(new Commands.PipelineMiddlewares.CommandHandlerResolverMiddleware())
            .AddMiddleware(new Commands.PipelineMiddlewares.CommandHandlerExecutorMiddleware
            {
                UseParametersResolve = true
            });

            for (int i = 0; i < NumberOfInterations; i++)
            {
                var cmd = new CreateUserCommand
                {
                    FirstName = "Ivan",
                    LastName  = "Ivanov",
                    BirthDay  = new DateTime(1985, 1, 1),
                };
                piplinesService.HandleCommand(cmd);
            }
        }
示例#2
0
        private static void Test()
        {
            var pipelineService = new DefaultMessagePipelineService();

            pipelineService.ServiceProvider   = new FuncServiceProvider(Resolver);
            pipelineService.PipelineContainer = new DefaultMessagePipelineContainer
            {
                Pipelines = new IMessagePipeline[]
                {
                    CommandPipeline,
                    QueryPipeline,
                    EventPipeline
                }
            };

            // Command.
            pipelineService.HandleCommand(new UpdateProductCommand
            {
                ProductId = 10,
                Name      = "Test",
            });
            Console.WriteLine(inMemoryMessageRepository.Dump());
            inMemoryMessageRepository.Messages.Clear();

            // Query.
            var list = pipelineService.Query <ProductsQueries>().With(q => q.Get(0, 10));

            Console.WriteLine(inMemoryMessageRepository.Dump());
            inMemoryMessageRepository.Messages.Clear();

            // Event.
            pipelineService.RaiseEvent(new UpdateProductEvent {
                Id = 1
            });
            Console.WriteLine(inMemoryMessageRepository.Dump());
            inMemoryMessageRepository.Messages.Clear();
        }