public async Task <RabbitRPC <TResult> > PublishWaitAsync <TResult>(Command <TResult> command, string queueName = null) { var @return = new RabbitRPC <TResult>(); try { @return.MessageTask.StartCounting(); queueName = string.IsNullOrEmpty(queueName) ? command.GetType().Name : queueName; @return.MessageTask.SetQueueName(queueName); if (await ExistQueue(queueName)) { @return.MessageTask.ExistQueue(); @return.Data = await _publishMessage.SendAsync(_channel, command, queueName); } else { @return.MessageTask.NotExistQueue(); @return.MessageTask.SetMessage("Queue non-existent"); } } catch (Exception e) { @return.MessageTask.SetMessage(e.GetBaseException().Message); } finally { @return.MessageTask.StopCounting(); } return(@return); }
public GetPostsOfFollowersHandler(FeedContext feedContext, IMediator mediator) { _feedContext = feedContext; _mediator = mediator; _rabbit = new RabbitRPC <List <FeedPostsResponse> >(RabbitMqChannels.GetPostsOfFollowers); }