public static ParamsDialogResult PerformShowDialog(ExecutionTask task, Window parent)
        {
            var form = new ParamsWindow(task);

            form.Owner = parent;
            var result = form.ShowDialog() ?? false;

            return(new ParamsDialogResult()
            {
                Result = result,
                OverrideArgs = form.OverrideArgs
            });
        }
Beispiel #2
0
        private void btn_TaskClick(object sender, RoutedEventArgs e)
        {
            var button = sender as Button;
            var taskId = (int)button.Tag;

            if (taskId >= 0)
            {
                ExecutionTask task = ConfigManager.Instance.AvailableTaskConfigurator.Tasks.Find(test => test.Id == taskId);

                var confirmCommands = task.Commands.Where(command => command.Confirm);
                if ((!confirmCommands.Any()) ||
                    (confirmCommands.Any() &&
                     MessageBox.Show($"Are you sure you wish to perform task: {task.Caption}?",
                                     $"Task {task.Caption} Confirmation",
                                     MessageBoxButton.OKCancel
                                     )
                     == MessageBoxResult.OK
                    )
                    )
                {
                    bool executeTask  = true;
                    var  overrideArgs = new Dictionary <int, string>();

                    var parameterisedCommands = task.Commands.Where(command => command.Parameterised);
                    if (parameterisedCommands.Any())
                    {
                        var paramsDialogResult = ParamsWindow.PerformShowDialog(task, this);
                        executeTask  = paramsDialogResult.Result;
                        overrideArgs = paramsDialogResult.OverrideArgs;
                    }

                    if (executeTask)
                    {
                        TaskExecutorImp.ExecuteTask(task, overrideArgs);
                    }
                }
            }
        }