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 }); }
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); } } } }