/// <summary> /// Set the next delete on server step, if possible. /// </summary> public void SetDeleteOnServerStep(KwsDeleteOnServerStep step) { if (m_deleteOnServerStep >= step) return; m_deleteOnServerStep = step; RequestRun("set server delete step to " + step); }
/// <summary> /// Request a switch to the task specified, if possible. /// </summary> public void RequestTaskSwitch(KwsTask task) { try { // Validate. if (m_taskSwitchFlag || task == KwsTask.Stop && !CanStop() || task == KwsTask.Spawn && !CanSpawn() || task == KwsTask.Rebuild && !CanRebuild() || task == KwsTask.WorkOffline && !CanWorkOffline() || task == KwsTask.WorkOnline && !CanWorkOnline() || task == KwsTask.Remove && !CanRemove() || task == KwsTask.DeleteOnServer && !CanDeleteOnServer()) { Logging.Log("Request to switch to task " + task + " ignored."); return; } Logging.Log("Switching to task " + task + "."); // Update some state prior to the task switch. if (task == KwsTask.Rebuild) { m_kws.MainStatus = KwsMainStatus.RebuildRequired; m_rebuildStep = KwsRebuildTaskStep.None; } else if (task == KwsTask.WorkOnline) { ResetKasFailureState(); } else if (task == KwsTask.Remove) { m_kws.MainStatus = KwsMainStatus.OnTheWayOut; m_kws.AddToKwsRemoveTree(); m_kws.SetDirty(); } else if (task == KwsTask.DeleteOnServer) { ResetKasFailureState(); m_deleteOnServerStep = KwsDeleteOnServerStep.ConnectedAndLoggedOut; } if (task == KwsTask.Spawn || task == KwsTask.Rebuild || task == KwsTask.WorkOffline || task == KwsTask.WorkOnline) { m_kws.AppException = null; } // Perform the task switch, if required. if (task != m_currentTask) SwitchTask(task); // Update some state after the task switch. if (task == KwsTask.Spawn) { m_kws.NormalizeAppState(); } } catch (Exception ex) { Base.HandleException(ex, true); } }