Example #1
0
        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
                });
            }
        }