public bool EditScript(ScriptAbs oldScript, ScriptAbs editedScript) { Log.Debug("Editing Script {@ScriptName} ({@ScriptType})", editedScript.ScriptName, editedScript.ScriptType); bool successful = false; bool rescheduleJob = ScriptAbs.HasScriptTypeChanged(oldScript.ScriptType, editedScript.ScriptType) || ScriptAbs.HasScheduledTimeChanged(oldScript, editedScript); if (RemoveScript(editedScript.Id, false)) //ToDo this could be improved { _scripts.Add(editedScript); successful = _settingsService.SaveScripts(_scripts); if (successful && editedScript.ScriptStatus == ScriptStatus.Running && rescheduleJob) { _runScriptService.StopScript(editedScript); if (editedScript.ScriptType != ScriptType.OneOff) { _runScriptService.RunScript(editedScript); } else { _view.ChangeScriptStatusThreadSafe(editedScript); } } } return(successful); }
public void EditItem(ScriptAbs oldScript, ScriptAbs editedScript) { var item = FindById(editedScript.Id); bool hasScriptTypeChanged = ScriptAbs.HasScriptTypeChanged(oldScript.ScriptType, editedScript.ScriptType); if (item != null && item.ModifyScript(editedScript, hasScriptTypeChanged)) { SortControls(); } }