in FMLab/ConnectorClientApplication/mainForm.cs [53:102]
private void btnDequeue_Click(object sender, EventArgs e)
{
if (txtBoxOutActivity.Text.Length == 0)
return;
Cursor.Current = Cursors.WaitCursor;
//authenticate
Helper helper = new Helper(txtBoxClientId.Text, txtBoxSecret.Text);
//remove the unwanted curly braces
txtBoxOutActivity.Text = txtBoxOutActivity.Text.Replace("{", "");
txtBoxOutActivity.Text = txtBoxOutActivity.Text.Replace("}", "");
//access the Connector API
UriBuilder dequeueUri = new UriBuilder(txtBoxBaseUri.Text);
dequeueUri.Path = "api/connector/dequeue/" + txtBoxOutActivity.Text;
//send a request to get the next queue message
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, dequeueUri.Uri);
request.Headers.Add("Authorization", helper.AuthenticationHeader);
HttpResponseMessage response = helper.SendRequest(request);
//read the response
ActivityMessage responseMessage = response.Content.ReadAsAsync<ActivityMessage>().Result;
if (responseMessage == null)
{
MessageBox.Show("No more messages in the queue");
return;
}
//read the downloadlocation and make a blob request
request = new HttpRequestMessage(HttpMethod.Get, responseMessage.DownloadLocation.ToString());
request.Headers.Add("Authorization", helper.AuthenticationHeader);
//send a request to get the actual content from the blob storage
HttpResponseMessage blobResponse = helper.SendRequest(request);
richTxtDequeue.Text = blobResponse.Content.ReadAsStringAsync().Result;
//ack the message
UriBuilder ackUri= new UriBuilder(txtBoxBaseUri.Text);
ackUri.Path = "api/connector/ack/" + txtBoxOutActivity.Text;
helper.SendPostRequest(ackUri.Uri, helper.AuthenticationHeader, null, responseMessage);
richTxtLog.AppendText ("Message dequeued and acked. MessageId: " + responseMessage.CorrelationId + "\u2028");
Cursor.Current = Cursors.Default;
}