예제 #1
0
        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));
        }
예제 #2
0
        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)));
        }