private async Task ProcessJob(JobDto job)
        {
            var clientContainer = await HelperMethods.GetJobContainer(job.ClientId);

            CloudBlockBlob jobBlob = clientContainer.GetBlockBlobReference("job/" + job.JobId);
            var name = jobBlob.DownloadText();
            var result = Compliments.GetRandomCompliment(name);

            CloudBlockBlob resultBlob = clientContainer.GetBlockBlobReference("result/" + job.JobId);
            resultBlob.UploadText(result);
        }
        private async Task<JobDto> ListenToJobQueue()
        {
            while (true)
            {
                // Long Polling
                var message = await this.jobQueue.ReceiveAsync(TimeSpan.FromSeconds(5));
                if (message != null)
                {
                    JobDto job = new JobDto();
                    job.ClientId = message.Properties["ClientId"].ToString();
                    job.JobId = message.GetBody<string>();

                    await message.CompleteAsync();

                    return job;
                }
            }
        }
 private async Task AddMessageToResponseTopic(JobDto job)
 {
     var message = new BrokeredMessage(job.JobId);
     message.Properties["ClientId"] = job.ClientId;
     await this.responseTopic.SendAsync(message);
 }
 private async Task AddMessageToResponseTopic(JobDto job)
 {
     var responseQueue = QueueClient.CreateFromConnectionString(this.serviceBusConnectionString, job.ClientId);
     var message = new BrokeredMessage(job.JobId);
     await responseQueue.SendAsync(message);
 }