Beispiel #1
0
        public Dictionary <string, List <Entity> > GetTargetEntitiesForLookupMatch(IOrganizationService crmService, List <LookupMatchCriteria> lookupMatchCriterias)
        {
            Dictionary <string, List <Entity> > entityLookups = new Dictionary <string, List <Entity> >();

            Dictionary <string, QueryExpression> queriesToBeProcessed = new Dictionary <string, QueryExpression>();

            foreach (LookupMatchCriteria lookupMatchCriteria in lookupMatchCriterias)
            {
                QueryExpression queryForLookupMatching = GetQueryForLookupMatching(lookupMatchCriteria);
                queriesToBeProcessed.Add(lookupMatchCriteria.EntityLogicalName, queryForLookupMatching);
            }

            BulkRequest  bulkRequest  = new BulkRequest(100);
            BulkResponse bulkResponse = bulkRequest.Read(crmService, queriesToBeProcessed);

            foreach (BulkResponseItem bulkResponseItem in bulkResponse.Responses)
            {
                if (bulkResponseItem.Results != null && bulkResponseItem.Results.Entities != null)
                {
                    entityLookups.Add(bulkResponseItem.BulkRequestId, bulkResponseItem.Results.Entities.ToList());
                }
            }


            return(entityLookups);
        }