public async Task <CommandResult> ExecuteAsync(ICommand command, CommandReturnType commandReturnType) { Ensure.NotNull(_commandResultProcessor, "commandResultProcessor"); var taskCompletionSource = new TaskCompletionSource <CommandResult>(); _commandResultProcessor.RegisterProcessingCommand(command, commandReturnType, taskCompletionSource); try { await _sendMessageService.SendMessageAsync(Producer, "command", command.GetType().Name, BuildCommandMessage(command, true), command.AggregateRootId, command.Id, command.Items).ConfigureAwait(false); } catch { _commandResultProcessor.ProcessFailedSendingCommand(command); throw; } return(await taskCompletionSource.Task.ConfigureAwait(false)); }
public async Task <AsyncTaskResult <CommandResult> > ExecuteAsync(ICommand command, CommandReturnType commandReturnType) { try { Ensure.NotNull(_commandResultProcessor, "commandResultProcessor"); var taskCompletionSource = new TaskCompletionSource <AsyncTaskResult <CommandResult> >(); _commandResultProcessor.RegisterProcessingCommand(command, commandReturnType, taskCompletionSource); var result = await _sendMessageService.SendMessageAsync(_producer, CreateENodeMessage(command, true), _commandRouteKeyProvider.GetRoutingKey(command), command.Id, null).ConfigureAwait(false); if (result.Status == AsyncTaskStatus.Success) { return(await taskCompletionSource.Task.ConfigureAwait(false)); } _commandResultProcessor.ProcessFailedSendingCommand(command); return(new AsyncTaskResult <CommandResult>(result.Status, result.ErrorMessage)); } catch (Exception ex) { return(new AsyncTaskResult <CommandResult>(AsyncTaskStatus.Failed, ex.Message)); } }
public Task PublishAsync(IApplicationMessage message) { var enodeMessage = CreateENodeMessage(message); return(_sendMessageService.SendMessageAsync(Producer, "applicationMessage", message.GetType().Name, enodeMessage, message.Id, message.Id, message.Items)); }
public Task PublishAsync(DomainEventStreamMessage eventStream) { var message = CreateENodeMessage(eventStream); return(_sendMessageService.SendMessageAsync(Producer, "events", string.Join(",", eventStream.Events.Select(x => x.GetType().Name)), message, eventStream.AggregateRootId, eventStream.Id, eventStream.Items)); }
public Task PublishAsync(IDomainException exception) { var message = CreateENodeMessage(exception); return(_sendMessageService.SendMessageAsync(Producer, "exception", exception.GetType().Name, message, exception.Id, exception.Id, exception.Items)); }
public Task <AsyncTaskResult> PublishAsync(DomainEventStreamMessage eventStream) { var message = CreateENodeMessage(eventStream); return(_sendMessageService.SendMessageAsync(Producer, message, eventStream.GetRoutingKey() ?? eventStream.AggregateRootId, eventStream.Id, eventStream.Version.ToString())); }
public Task <AsyncTaskResult> PublishAsync(IPublishableException exception) { var message = CreateENodeMessage(exception); return(_sendMessageService.SendMessageAsync(Producer, message, exception.GetRoutingKey() ?? exception.Id, exception.Id, null)); }
public Task <AsyncTaskResult> PublishAsync(IApplicationMessage message) { var queueMessage = CreateENodeMessage(message); return(_sendMessageService.SendMessageAsync(Producer, queueMessage, message.GetRoutingKey() ?? message.Id, message.Id, null)); }