public Task <ICommandResult> Submit <TCommand>(TCommand command) where TCommand : ICommand { var handler = _commandFactory.CreateCommandHandler <TCommand>(); var result = handler.Handle(command); return(result); }
private void OnMessageReceivod(object sender, BasicDeliverEventArgs eventArgs) { Console.WriteLine("收到信息"); var model = ((EventingBasicConsumer)sender).Model; ICommandHandler handler; try { model.BasicAck(eventArgs.DeliveryTag, false); handler = _factory.CreateCommandHandler(eventArgs.BasicProperties.Type); } catch (Exception e) { Console.WriteLine(e); model.BasicAck(eventArgs.DeliveryTag, false); handler = null; } if (handler != null) { Task task = new Task(async() => { try { //Console.WriteLine("我开始执行"); var responseBuffer = await handler.HandleAsync(eventArgs.Body.ToArray()); var responseProperties = _model.CreateBasicProperties(); responseProperties.CorrelationId = eventArgs.BasicProperties.CorrelationId; _model.BasicPublish("", eventArgs.BasicProperties.ReplyTo, responseProperties, responseBuffer); //Console.WriteLine(""); } catch (Exception e) { Console.WriteLine(e); } }); task.Start(); } }
public async Task ExecuteAsync <TCommand>(TCommand command, CancellationToken cancellationToken = default) { var commandHandler = commandHandlerFactory.CreateCommandHandler <TCommand>(); await commandHandler.HandleAsync(command, cancellationToken).ConfigureAwait(false); }