private void ViewMessage(MessageListItem selectedMessage)
 {
     Task.Factory
         .StartNew(() => {
             var items = _messageRepo.GetAllForEvent (selectedMessage.SmsGroup.Id, selectedMessage.DateSent, selectedMessage.Text);
             var recipients = new List<string>();
             items.ForEach (message => recipients.Add(message.ContactName));
             return recipients;
         })
         .ContinueWith(task =>
             Activity.RunOnUiThread(() => DisplayDetail(task.Result, selectedMessage)));
 }
        private void DeleteMessage(MessageListItem selectedMessage)
        {
            _progressDialog = new ProgressDialog(Activity);
            _progressDialog.SetTitle ("Delete Message");
            _progressDialog.SetMessage (string.Format ("Deleting Message with {0} recipients.  Please wait...", selectedMessage.RecipientCount));
            _progressDialog.Show ();

            Task.Factory
                .StartNew(() => {
                    var messages = _messageRepo.GetAllForEvent (selectedMessage.SmsGroup.Id, selectedMessage.DateSent, selectedMessage.Text);
                    messages.ForEach (message => _messageRepo.Delete (message));
                })
                .ContinueWith(task =>
                    Activity.RunOnUiThread(() => {
                        _sortedItems = GetGroupedMessages (20);
                        ListAdapter = new MessageListAdapter(Activity, _sortedItems);
                        ((BaseAdapter)ListAdapter).NotifyDataSetChanged ();
                        _progressDialog.Dismiss ();
                }));
        }
        private void DisplayDetail(List<string> recipients, MessageListItem selectedMessage)
        {
            var contactNames = string.Join (", ", recipients.ToArray());

            new AlertDialog.Builder(Activity)
                .SetTitle ("Message Details")
                .SetMessage (string.Format ("Sent To: {0} at {1} on {2}",
                                    contactNames, selectedMessage.DateSent.ToShortTimeString(), selectedMessage.DateSent.ToShortDateString()))
                .Show ();
        }
 private void CopyMessage(MessageListItem selectedMessage)
 {
     var clipboard = (ClipboardManager)Activity.GetSystemService (Context.ClipboardService);
     clipboard.PrimaryClip = ClipData.NewPlainText ("message", selectedMessage.Text);
     Toast.MakeText (Activity, "Message text copied to clipboard", ToastLength.Short).Show ();
 }