public UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
        {
            if (indexPath.Item == 0)
            {
                var cell = MemberListTable.DequeueReusableCell("AddMemberCell");

                (cell.ViewWithTag(100) as UILabel).Text = "Load member " + searchString;

                return(cell);
            }
            else
            {
                var cell = MemberListTable.DequeueReusableCell("MemberCell");

                int searchId;
                CodeProjectMember member = null;

                if (int.TryParse(searchString, out searchId))
                {
                    member = MemberList.Where(x => x.Id == searchId).ToList() [indexPath.Item - 1];
                }
                else
                {
                    member = MemberList.Where(x => x.Name.ToUpper().Contains(searchString.ToUpper())).ToList() [indexPath.Item - 1];
                }

                CodeProjectMemberListDataSource.FillCellWithMember(cell, member);

                return(cell);
            }
        }
        public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender)
        {
            base.PrepareForSegue(segue, sender);

            int memberId = -1;

            if (segue.Identifier == "LoadMember")
            {
                if (!int.TryParse(searchString, out memberId))
                {
                    CodeProjectMember member = MemberList.Where(x => x.Name == searchString).FirstOrDefault();
                    if (member != null)
                    {
                        memberId = member.Id;
                    }
                }
                MemberSearchBarController.SearchBar.Text = String.Empty;
                MemberSearchBarController.SearchBar.ResignFirstResponder();
                MemberSearchBarController.Active = false;
            }
            else if (segue.Identifier == "ShowMember")
            {
                NSIndexPath selectedIndexPath = MemberListTable.IndexPathForSelectedRow;
                if (selectedIndexPath != null)
                {
                    CodeProjectMember member = MemberList [selectedIndexPath.Row];
                    if (member != null)
                    {
                        memberId = member.Id;
                    }
                }
                else
                {
                    selectedIndexPath = MemberSearchBarController.SearchResultsTableView.IndexPathForSelectedRow;
                    if (selectedIndexPath != null)
                    {
                        CodeProjectMember member = MemberList.Where(x => x.Name.ToUpper().Contains(searchString.ToUpper())).ToList() [selectedIndexPath.Row - 1];
                        if (member != null)
                        {
                            memberId = member.Id;
                        }
                        MemberSearchBarController.SearchBar.Text = String.Empty;
                        MemberSearchBarController.SearchBar.ResignFirstResponder();
                        MemberSearchBarController.Active = false;
                    }
                }
            }

            var memberProfileController = segue.DestinationViewController as CodeProjectMemberProfileViewController;

            if (memberProfileController != null)
            {
                memberProfileController.SetMemberId(memberId);
            }
        }
        public override void CommitEditingStyle(UITableView tableView, UITableViewCellEditingStyle editingStyle, MonoTouch.Foundation.NSIndexPath indexPath)
        {
            if (editingStyle == UITableViewCellEditingStyle.Delete)
            {
                CodeProjectMember   memberToDelete = MemberList [indexPath.Row];
                CodeProjectDatabase database       = new CodeProjectDatabase();
                database.DeleteMember(memberToDelete.Id);

                MemberList = database.GetMembers();
                tableView.ReloadData();
            }
        }
        public static UITableViewCell FillCellWithMember(UITableViewCell cell, CodeProjectMember member)
        {
            (cell.ViewWithTag(100) as UILabel).Text = member.Name;
            (cell.ViewWithTag(101) as UILabel).Text = "Posts: " + (member.ArticleCount + member.BlogCount);
            (cell.ViewWithTag(102) as UILabel).Text = member.Reputation;

            CodeProjectDatabase database = new CodeProjectDatabase();

            byte[] gravatar = database.GetGravatar(member.Id);
            if (gravatar != null)
            {
                UIImage image = UIImage.LoadFromData(NSData.FromArray(gravatar));
                (cell.ViewWithTag(105) as UIImageView).Image = image;
            }

            return(cell);
        }
 public void SetMember(CodeProjectMember member)
 {
     viewModel.MemberId = member.Id;
     viewModel.MemberReputationGraphUrl = member.ReputationGraph;
 }