private IEnumerable <TargetedEntityMetadata> AggregatePickListWithEntityMetaData(PickListMetaElement pickListData, RetrieveMetadataChangesResponse retrieveMetadataChangesResponse) { return(from pickListItem in pickListData.Items join entityMetadata in retrieveMetadataChangesResponse.EntityMetadata on pickListItem.PickListItemId equals entityMetadata.ObjectTypeCode.Value select new TargetedEntityMetadata(entityMetadata.LogicalName, pickListItem.DisplayLabel, entityMetadata.ObjectTypeCode.Value)); }
private async Task <IEnumerable <TargetedEntityMetadata> > GetEntityMetadataByTypeCode(PickListMetaElement pickListData, int[] objectTypeCodes) { EntityQueryExpression entityQueryExpression = new EntityQueryExpression(); entityQueryExpression.Criteria.Conditions.Add(new MetadataConditionExpression("ObjectTypeCode", MetadataConditionOperator.In, objectTypeCodes)); entityQueryExpression.Properties = new MetadataPropertiesExpression("LogicalName", "ObjectTypeCode"); RetrieveMetadataChangesRequest retrieveMetadataChangesRequest = new RetrieveMetadataChangesRequest { Query = entityQueryExpression, ClientVersionStamp = null, DeletedMetadataFilters = DeletedMetadataFilters.Default }; var retrieveMetadataChangesResponse = await Task.Run(() => (RetrieveMetadataChangesResponse)crmServiceClient.Execute(retrieveMetadataChangesRequest)); return(AggregatePickListWithEntityMetaData(pickListData, retrieveMetadataChangesResponse)); }