public List<Guid> CheckDuplicateEmails()
{
Guid ruleId = CreateDuplicateDetectionRule();
BulkDetectDuplicatesRequest request = new BulkDetectDuplicatesRequest()
{
JobName = "Detect Duplicate Contacts",
Query = new QueryExpression()
{
EntityName = Contact.EntityLogicalName,
ColumnSet = new ColumnSet(true)
},
RecurrencePattern = String.Empty,
RecurrenceStartTime = DateTime.Now,
ToRecipients = new Guid[0],
CCRecipients = new Guid[0]
};
BulkDetectDuplicatesResponse response = (BulkDetectDuplicatesResponse)service.Execute(request);
WaitForAsyncJobToFinish(response.JobId, 120);
QueryByAttribute query = new QueryByAttribute()
{
ColumnSet = new ColumnSet(true),
EntityName = "duplicaterecord"
};
query.Attributes.Add("asyncoperationid");
query.Values.Add(response.JobId);
EntityCollection results = service.RetrieveMultiple(query);
var duplicateIds = results.Entities.Select((entity) => ((DuplicateRecord)entity).BaseRecordId.Id);
service.Delete(DuplicateRule.EntityLogicalName, ruleId);
return duplicateIds.ToList<Guid>();
}
|