コード例 #1
0
 public ScriptRelayCommand(IScriptCommand command, IParameterDicConverter converter, IScriptRunner scriptRunner)
     : base(
         pm =>
 {
     scriptRunner.RunAsync(converter.Convert(pm), command);
 },
         pm => command.CanExecute(converter.Convert(pm)))
 {
 }
コード例 #2
0
        public static Task RunScriptAsync(ParameterDic initialParameters, bool cloneParameters, params IScriptCommand[] commands)
        {
            if (cloneParameters)
            {
                initialParameters = initialParameters.Clone();
            }

            IScriptRunner runner = initialParameters.GetValue <IScriptRunner>("{ScriptRunner}", Instance);

            return(runner.RunAsync(new Queue <IScriptCommand>(commands), initialParameters));
        }
コード例 #3
0
        public bool Poll()
        {
            if (detach_state_)
            {
                return(false);
            }

            if ((!detach_req_) && (GetDetachStatus()))
            {
                detach_req_ = true;
                runner_.StopAsync();
            }

            if ((!detach_req_) && (!runner_.IsRunning))
            {
                if (mode_ == ScriptRunMode.Repeat)
                {
                    runner_.RunAsync();
                }
            }

            if ((detach_req_) && (!detach_state_))
            {
                detach_state_ = !runner_.IsRunning;
            }

            /* 状態更新 */
            var update_state = false;
            var status_new   = GetRunnerStatus();

            if (status_ != status_new)
            {
                status_      = status_new;
                update_state = true;
            }

            return(update_state);
        }
コード例 #4
0
 public static async Task RunAsync(this IScriptRunner scriptRunner, ParameterDic initialParameters, params IScriptCommand[] cmds)
 {
     await scriptRunner.RunAsync(new Queue <IScriptCommand>(cmds), initialParameters);
 }
コード例 #5
0
 /// <summary>
 /// Execute an Explorer command.
 /// </summary>
 /// <param name="command"></param>
 /// <param name="parameterDic"></param>
 /// <param name="scriptRunner"></param>
 /// <returns></returns>
 public static async Task ExecuteAsync(this ICommandManager commandManager, IScriptCommand[] commands,
                                       ParameterDic parameterDic = null, IScriptRunner scriptRunner = null)
 {
     scriptRunner = scriptRunner ?? new ScriptRunner();
     await scriptRunner.RunAsync(commandManager.ParameterDicConverter.ConvertAndMerge(parameterDic), commands);
 }