public virtual void OnDeleteEntityRecord(CrmCommandsQueue requests, Entity excessCrmRow) { // disable first requests.AddDeleteStageStep(new SetStateRequest { EntityMoniker = excessCrmRow.ToEntityReference(), State = new OptionSetValue(1), Status = new OptionSetValue(2) }); requests.AddDeleteStageStep(new DeleteRequest { Target = excessCrmRow.ToEntityReference() }); }
public override void OnDeleteEntityRecord(CrmCommandsQueue requests, Entity excessCrmRow) { requests.AddDeleteStageStep(new DeleteRequest { Target = excessCrmRow.ToEntityReference() }); }
public override void OnUpsertEntityRecord(CrmCommandsQueue requests, Entity crmEntity, Entity stamdataEntity, Dictionary <string, object> diff) { var upsert = new Entity(crmEntity?.LogicalName ?? stamdataEntity.LogicalName, crmEntity?.Id ?? stamdataEntity.Id); foreach (var item in diff) { upsert[item.Key] = item.Value; } var isNew = crmEntity == null; if (isNew) { requests.AddUpdateStageStage(new CreateRequest { Target = upsert }); requests.AddDeleteStageStep(new PublishDuplicateRuleRequest { DuplicateRuleId = upsert.Id }); } else { requests.AddUpdateStageStage(new UpdateRequest { Target = upsert }); } }