async private void GetAccounts(string accessToken)
        {
            OrganizationDataWebServiceProxy orgService = new OrganizationDataWebServiceProxy
            {
                ServiceUrl = CrmUrl,
                AccessToken = accessToken
            };

            //Get "Sample" Accounts - make this more meaningful & add paging
            QueryExpression query = new QueryExpression
            {
                EntityName = "account",
                ColumnSet = new ColumnSet("name", "address1_latitude", "address1_longitude"),
                TopCount = 10,
                Orders = new DataCollection<OrderExpression>
                    {
                        new OrderExpression
                        {
                            AttributeName = "name",
                            OrderType = OrderType.Descending
                        }
                    },
                Criteria = new FilterExpression
                {
                    Conditions =
                        {
                            new ConditionExpression
                            {
                                EntityName = "account",
                                AttributeName = "name",
                                Operator = ConditionOperator.Like,
                                Values = {"%sample%"}
                            }
                        }
                }
            };

            EntityCollection response = await orgService.RetrieveMultiple(query);

            foreach (Entity account in response.Entities)
            {
                _dataSource.Objects.Insert(0, account);

                using (var indexPath = NSIndexPath.FromRowSection(0, 0))
                    TableView.InsertRows(new[] { indexPath }, UITableViewRowAnimation.Automatic);
            }
        }
 static internal QueryExpression LoadFromXml(XElement item)
 {
     QueryExpression queryExpression = new QueryExpression()
     {
         ColumnSet = ColumnSet.LoadFromXml(item.Element(Util.ns.a + "ColumnSet")),
         Criteria = FilterExpression.LoadFromXml(item.Element(Util.ns.a + "Criteria")),
         Distinct = Util.LoadFromXml<bool>(item.Element(Util.ns.a + "Distinct")),
         EntityName = Util.LoadFromXml<string>(item.Element(Util.ns.a + "EntityName")),
         PageInfo = PagingInfo.LoadFromXml(item.Element(Util.ns.a + "PageInfo")),
         NoLock = Util.LoadFromXml<bool>(item.Element(Util.ns.a + "NoLock"))
     };
     foreach (XElement linkEntity in item.Element(Util.ns.a + "LinkEntities").Elements(Util.ns.a + "LinkEntity"))
     {
         queryExpression.LinkEntities.Add(LinkEntity.LoadFromXml(linkEntity));
     }
     foreach (XElement order in item.Element(Util.ns.a + "Orders").Elements(Util.ns.a + "OrderExpression"))
     {
         queryExpression.Orders.Add(OrderExpression.LoadFromXml(order));
     }
     if (item.Element(Util.ns.a + "TopCount") != null)
         queryExpression.TopCount = Util.LoadFromXml<int>(item.Element(Util.ns.a + "TopCount"));
     return queryExpression;
 }