コード例 #1
0
        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);
        }
コード例 #2
0
        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();
            }
        }