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; }