public override void AccessoryButtonTapped(UITableView tableView, NSIndexPath indexPath)
 {
     Console.WriteLine ("## Accessory tapped: " + list [indexPath.Row].matterName);
     MatterDetailsDialog diag = new MatterDetailsDialog (list [indexPath.Row]);
     controller.NavigationController.PushViewController (diag, true);
 }
 public override void RowSelected(
     UITableView tableView, NSIndexPath indexPath)
 {
     MatterDetailsDialog diag = new MatterDetailsDialog (list [indexPath.Row]);
     controller.NavigationController.PushViewController (diag, true);
 }
        //
        // Invoked when we get the stream back from server
        //
        void DataDownloaded(IAsyncResult result)
        {
            UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
            isBusy = false;
            var request = result.AsyncState as HttpWebRequest;
            WebServiceResponseDTO dto;
            searchResults = new List<MatterSearchResultDTO> ();
            try {
                HttpWebResponse response = (HttpWebResponse)request.EndGetResponse (result);
                Stream receiveStream = response.GetResponseStream ();
                StreamReader readStream = new StreamReader (receiveStream);
                string resp = readStream.ReadToEnd ();
                Console.WriteLine ("## MatterFind Response stream received.\n" + resp);
                response.Close ();
                readStream.Close ();

                dto = (WebServiceResponseDTO)JsonConvert.DeserializeObject (resp, typeof(WebServiceResponseDTO));

                end = DateTime.Now;
                Tools.SendElapsedTime (start, end, dto.activityID);

                InvokeOnMainThread (delegate {
                    if (dto.responseCode == 0) {
                        searchResults = dto.matterSearchList;
                        if (searchResults != null && searchResults.Count == 0) {
                            resultSection.Clear ();
                            NSUserDefaults.StandardUserDefaults.SetString ("", "search");
                            new UIAlertView ("Search Result", "No matters found for this search", null, "OK").Show ();
                        } else {
                            //new UIAlertView ("Search Result", "Matters found for this search: " + searchResults.Count, null, "OK").Show ();
                        }
                    } else {
                        new UIAlertView ("Search Result", dto.responseMessage + "\nStatus Code: " + dto.responseCode, null, "OK").Show ();
                        return;
                    }
                    if (searchResults.Count > 0) {
                        Console.WriteLine ("......found results: " + searchResults.Count);
                        resultSection.Clear ();
                        UIImage img = UIImage.FromFile ("Images/matter.png");
                        foreach (var item in searchResults) {
                            var x = new CustomImageStringElement (item.matterName, img);
                            resultSection.Add (x);
                            x.Tapped += delegate {
                                Console.WriteLine ("...selected - " + item.matterName);
                                x.SetBackgroundColor (UIColor.Cyan);
                                MatterDetailsDialog diag = new MatterDetailsDialog (item);
                                this.NavigationController.PushViewController (diag, true);

                                //TODO - loop thru result section and change the other backgrounds to white

                            };
                        }
                    }

                });

            } catch (Exception ex) {
                Console.WriteLine ("### ERROR: " + ex.Message);
                InvokeOnMainThread (delegate {
                    isBusy = false;
                    new UIAlertView ("Network Error", "Problem communicating with server.\nPlease try again or call GhostPractice Support", null, "Close").Show ();
                }
                );

            }
        }