public static void UpdateMessage(this CloudQueue queue, CloudQueueMessageMutable message, string body, TimeSpan? visibilityTimeout) { var req = (HttpWebRequest)WebRequest.Create( queue.Uri.AbsoluteUri + string.Format("/messages/{0}?popreceipt={1}&visibilitytimeout={2}", message.Id, Uri.EscapeDataString(message.PopReceipt), (int)(visibilityTimeout.HasValue ? visibilityTimeout.Value : (message.NextVisibleTime.Value - DateTime.UtcNow) ).TotalSeconds) ); req.Method = "PUT"; req.Headers["x-ms-version"] = "2011-08-18"; if (body != null) { var bytes = QueueRequest.GenerateMessageRequestBody(body); req.ContentLength = bytes.Length; queue.ServiceClient.Credentials.SignRequest(req); using (var stream = req.GetRequestStream()) { stream.Write(bytes, 0, bytes.Length); } message.Content = body; } else { req.ContentLength = 0; queue.ServiceClient.Credentials.SignRequest(req); } using (var response = (HttpWebResponse)req.GetResponse()) { if (response.StatusCode != HttpStatusCode.NoContent) { throw new InvalidOperationException("Unexpected response code: " + response.StatusCode); } message.PopReceipt = response.Headers["x-ms-popreceipt"]; message.NextVisibleTime = DateTime.Parse(response.Headers["x-ms-time-next-visible"]); } }
public static void UpdateMessage(this CloudQueue queue, CloudQueueMessageMutable message, string body) { UpdateMessage(queue, message, Convert.ToBase64String(Encoding.UTF8.GetBytes(body)), null); }
public static void RenewMessage(this CloudQueue queue, CloudQueueMessageMutable message, TimeSpan visibilityTimeout) { UpdateMessage(queue, message, null, visibilityTimeout); }
public static void UpdateMessage(this CloudQueue queue, CloudQueueMessageMutable message, byte[] body) { UpdateMessage(queue, message, Convert.ToBase64String(body), null); }
public static void DeleteMessageMutable(this CloudQueue queue, CloudQueueMessageMutable message) { queue.DeleteMessage(message.Id, message.PopReceipt); }