async Task ExecuteTapQueueMessageCommandAsync(CloudQueueMessage queueMessage) { if (queueMessage == null) { return; } MessagingService.Current.Subscribe <MessageArgsDeleteQueueMessage>(MessageKeys.DeleteQueueMessage, async(m, argsDeleteQueueMessage) => { Navigation.PopAsync(); IProgressDialog deletingDialog = UserDialogs.Loading("Deleting Queue Message"); deletingDialog.Show(); try { var message = QueueMessages.Where(qm => qm.Id == argsDeleteQueueMessage.QueueId).FirstOrDefault(); if (message == null) { return; } await Queue.BaseQueue.DeleteMessageAsync(message); App.Logger.Track(AppEvent.DeleteQueueMessage.ToString()); QueueMessages.Remove(message); QueueMessageCount--; SortQueueMessages(); } catch (Exception ex) { Logger.Report(ex, "Method", "HandleMessageArgsDeleteQueueMessage"); MessagingService.Current.SendMessage(MessageKeys.Error, ex); } finally { if (deletingDialog != null) { if (deletingDialog.IsShowing) { deletingDialog.Hide(); } deletingDialog.Dispose(); } } }); try { var queueMessageDetailsPage = new QueueMessageDetailsPage(queueMessage, queue); App.Logger.TrackPage(AppPage.QueueMessageDetails.ToString()); await NavigationService.PushAsync(Navigation, queueMessageDetailsPage); } catch (Exception ex) { Console.WriteLine("Ex: " + ex.Message); } }
async Task <bool> ExecuteLoadQueueMessagesAsync(bool force = false) { if (IsBusy) { return(false); } try { IsBusy = true; NoQueueMessagesFound = false; if (!Queue.BaseQueue.ApproximateMessageCount.HasValue || force) { await queue.BaseQueue.FetchAttributesAsync(); OnPropertyChanged("Queue"); } if (Queue.BaseQueue.ApproximateMessageCount.Value == 0) { NoQueueMessagesFound = true; return(true); } QueueMessages.Clear(); var queueMessages = await Queue.BaseQueue.GetMessagesAsync(Queue.BaseQueue.ApproximateMessageCount.Value, TimeSpan.FromSeconds(Settings.Current.QueueVisibilityTimeoutSeconds), null, null); QueueMessageCount = Queue.BaseQueue.ApproximateMessageCount.Value; foreach (var queueMessage in queueMessages) { QueueMessages.Add(queueMessage); } SortQueueMessages(); if (QueueMessages.Count == 0) { NoQueueMessagesFoundMessage = "No Queue Messages Found"; NoQueueMessagesFound = true; } else { NoQueueMessagesFound = false; } } catch (Exception ex) { Logger.Report(ex, "Method", "ExecuteLoadQueueMessagesAsync"); MessagingService.Current.SendMessage(MessageKeys.Error, ex); } finally { IsBusy = false; } return(true); }
private void SortQueueMessages() { SortedQueueMessages.ReplaceRange(QueueMessages.OrderBy(p => p.InsertionTime)); if (SortedQueueMessages.Count > 0) { NoQueueMessagesFound = false; } else { NoQueueMessagesFound = true; } }
public void AddQueueMessage(CloudQueueMessage queueMessage) { QueueMessages.Add(queueMessage); SortQueueMessages(); QueueMessageCount = QueueMessages.Count; }
public void Save(string msg) { QueueMessages.Enqueue(msg); }
public void Push(string data) { //iron.io expected object format var messages = new QueueMessages { Messages = new QueueMessage[] { new QueueMessage { Body = data } } }; var json = JsonConvert.SerializeObject(messages); var httpContent = new StringContent(json); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var uri = string.Format("{0}/messages", _baseUri); var httpResponse = _httpClient.PostAsync(uri, httpContent).Result; }