public override void Execute(Object parameter, INextCommandDelegate commandFinishedCallback) { if (RevertChangesSavepoint == null) { base.Execute(parameter, commandFinishedCallback); return; } if (parameter == null) { if (commandFinishedCallback != null) { commandFinishedCallback.Invoke(true); } return; } IList <Object> businessObjects = ExtractBusinessObjects(parameter); RevertChangesFinishedCallback revertChangesFinishedCallback = null; if (commandFinishedCallback != null) { revertChangesFinishedCallback = new RevertChangesFinishedCallback(delegate(bool success) { commandFinishedCallback.Invoke(success); }); } IdentityHashSet <Object> mentionedBusinessObjects = new IdentityHashSet <Object>(businessObjects); IdentityHashSet <Object> savepointBusinessObjects = new IdentityHashSet <Object>(RevertChangesSavepoint.GetSavedBusinessObjects()); mentionedBusinessObjects.RemoveAll(savepointBusinessObjects); RevertChangesSavepoint.RevertChanges(); RevertChangesHelper.RevertChanges(mentionedBusinessObjects, revertChangesFinishedCallback); }
public virtual void Execute(Object parameter, INextCommandDelegate commandFinishedCallback) { if (parameter == null) { if (commandFinishedCallback != null) { commandFinishedCallback.Invoke(true); } return; } IList <Object> businessObjects = ExtractBusinessObjects(parameter); if (commandFinishedCallback == null) { RevertChangesHelper.RevertChanges(businessObjects); return; } RevertChangesFinishedCallback revertChangesFinishedCallback = null; if (commandFinishedCallback != null) { revertChangesFinishedCallback = new RevertChangesFinishedCallback(delegate(bool success) { commandFinishedCallback.Invoke(success); }); } RevertChangesHelper.RevertChanges(businessObjects, revertChangesFinishedCallback); }
// This execute is used, if the command itself is a CommandRegistry that has IAsyncCommands public virtual void Execute(Object parameter, INextCommandDelegate commandFinishedCallback) { if (!this.CanExecute()) { return; } lock (busyLock) { if (busyCount > 0) { if (!AllowConcurrentExecution) { // The registry is already busy and concurrent execution is not allowed -> we are finished here: if (commandFinishedCallback != null) { commandFinishedCallback.Invoke(false); } return; } } else { GuiThreadHelper.InvokeInGuiAndWait(delegate() { IncreaseBusyCount(); }); } } IList <ICommandContainer> commandContainers = GetOrderedCommandContainers(); CommandRegistryFinishedCallback registryFinishedCallback = new CommandRegistryFinishedCallback(delegate(bool success) { DecreaseBusyCount(); RaiseCanExecuteChanged(); if (commandFinishedCallback != null) { commandFinishedCallback.Invoke(success); } }); if (commandContainers.Count < 1) { registryFinishedCallback(true); return; } Execute(commandContainers, false, registryFinishedCallback); }
public virtual void Execute(Object parameter, INextCommandDelegate commandFinishedCallback) { if (parameter == null) { if (commandFinishedCallback != null) { commandFinishedCallback.Invoke(true); } return; } IList <Object> businessObjects = ExtractBusinessObjects(parameter); if (businessObjects.Count < 1) { if (commandFinishedCallback != null) { commandFinishedCallback.Invoke(true); } return; } ProceedWithMergeHook proceedWithMergeHook = null; if (CUDResultPreprocessor != null) { proceedWithMergeHook = CUDResultPreprocessor.GetProceedWithMergeHook(); } MergeFinishedCallback mergeFinishedCallback = new MergeFinishedCallback(delegate(bool success) { bool result = success; if (proceedWithMergeHook != null) { if (CUDResultPreprocessor.GetPreprocessSuccess(proceedWithMergeHook) != true) { result = false; } CUDResultPreprocessor.CleanUp(proceedWithMergeHook); } if (commandFinishedCallback != null) { commandFinishedCallback.Invoke(result); } }); MergeProcess.Process(businessObjects, null, proceedWithMergeHook, mergeFinishedCallback); }
public virtual void Execute(Object parameter, INextCommandDelegate commandFinishedCallback) { if (parameter == null) { if (commandFinishedCallback != null) { commandFinishedCallback.Invoke(true); } return; } IList <Object> businessObjects = ExtractBusinessObjects(parameter, true); IList <Object> directDeletes = new List <Object>(); foreach (Object obj in businessObjects) { if (obj is AmbethIDataObject) { AmbethIDataObject aido = (AmbethIDataObject)obj; if (DeleteToBeCreatedDirectly && aido.ToBeCreated) { directDeletes.Add(aido); continue; } aido.ToBeDeleted = true; } } if (commandFinishedCallback == null) { ChangeHelper.RevertChanges(directDeletes); return; } RevertChangesFinishedCallback revertChangesFinishedCallback = null; if (commandFinishedCallback != null) { revertChangesFinishedCallback = new RevertChangesFinishedCallback(delegate(bool success) { commandFinishedCallback.Invoke(success); }); } ChangeHelper.RevertChanges(directDeletes, revertChangesFinishedCallback); }