/// <summary> /// Publish message /// </summary> /// <param name="message"></param> /// <returns></returns> public Task PublishAsync(IApplicationMessage message) { var queueMessage = CreateTopicMessage(message); return(_sendMessageService.SendMessageAsync(_producer, "applicationMessage", message.GetType().Name, queueMessage, message.Id, message.Id, message.Items)); }
/// <summary> /// Send command /// </summary> /// <param name="command"></param> /// <returns></returns> public Task SendAsync(ICommand command) { return(_sendMessageService.SendMessageAsync(_producer, "command", command.GetType().Name, BuildCommandMessage(command, false, _sagaIdCommandItemKey), command.AggregateRootId, command.Id, command.Items)); }
/// <summary> /// Publish message. /// </summary> /// <param name="eventStream"></param> /// <returns></returns> public Task PublishAsync(DomainEventStreamMessage eventStream) { var message = CreateTopicMessage(eventStream); return(_sendMessageService.SendMessageAsync(_producer, "events", string.Join(",", eventStream.Events.Select(x => x.GetType().Name)), message, eventStream.AggregateRootId, eventStream.Id, eventStream.Items)); }
/// <summary> /// Publish message. /// </summary> /// <param name="exception"></param> /// <returns></returns> public Task PublishAsync(IDomainException exception) { var message = CreateTopicMessage(exception); return(_sendMessageService.SendMessageAsync(_producer, "exception", exception.GetType().Name, message, exception.Id, exception.Id, exception.Items)); }