public async Task <HttpResponseMessage> SendMessageToQueue([FromBody] SendMessageCommand sendMessageCommand) { string test = new StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd(); HttpContext.Current.Request.InputStream.Seek(0, SeekOrigin.Begin); //Validate input var inputValidationResult = await ValidateInput(sendMessageCommand); if (inputValidationResult.IsValid == false) { return(inputValidationResult.HttpResult); } //Send message to queue var serviceBusClaimCheckClient = new ServiceBusClaimCheckClient(_blobStorageConnString, _blobContainerName, _serviceBusConnString, sendMessageCommand.QueueName); await serviceBusClaimCheckClient.SendMessageToQueue(new ServiceBusMessage { Content = sendMessageCommand.Content, ContentType = sendMessageCommand.ContentType, ScheduledEnqueueTimeUtc = string.IsNullOrEmpty(sendMessageCommand.ScheduledEnqueueTimeUtc) ? DateTime.MinValue : DateTime.Parse(sendMessageCommand.ScheduledEnqueueTimeUtc), Properties = sendMessageCommand.Properties == null ? new Dictionary <string, string>() : JsonConvert.DeserializeObject <Dictionary <string, string> >(sendMessageCommand.Properties.ToString()) }); return(Request.CreateResponse(HttpStatusCode.Accepted)); }
public async Task <HttpResponseMessage> ReceiveMessageFromQueue([FromUri] string queueName) { //Validate input var inputValidationResult = await ValidateInput(queueName, false); if (inputValidationResult.IsValid == false) { return((HttpResponseMessage)inputValidationResult.HttpResult); } //Receive message from queue var serviceBusClaimCheckClient = new ServiceBusClaimCheckClient(_blobStorageConnString, _blobContainerName, _serviceBusConnString, queueName); var receivedServiceBusMessage = await serviceBusClaimCheckClient.ReceiveMessageFromQueue(); //No message available, wait until next polling if (receivedServiceBusMessage == null) { return(Request.EventWaitPoll()); } return(Request.EventTriggered(values: receivedServiceBusMessage, pollAgain: TimeSpan.FromSeconds(0))); }