public async Task <IActionResult> PostPublish([FromBody] MessagePublishDto message) { this.logger.LogTrace("Call publis message fro topic: {0}", message.Topic); PublishResult result = await this.messageRepository.Publish(message.Topic, message.Message).ConfigureAwait(false); foreach (PublishPair storedMessage in result.CratedMessages) { await this.notificationSender.SendNotificationAsync(storedMessage.QueuId, storedMessage.MessageId).ConfigureAwait(false); } return(this.CreatedAtAction(nameof(this.GetMessages), null, result)); }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='body'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <object> PublishAsync(this IPassiveMQAPI operations, MessagePublishDto body = default(MessagePublishDto), CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.PublishWithHttpMessagesAsync(body, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='body'> /// </param> public static object Publish(this IPassiveMQAPI operations, MessagePublishDto body = default(MessagePublishDto)) { return(Task.Factory.StartNew(s => ((IPassiveMQAPI)s).PublishAsync(body), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }