/// <summary> /// Run the application. /// </summary> public override BoolMessageItem Execute() { // Example 1: Non-Fluent API to configure Bootup services on startup. // // 1. Put into group called "core", parameter "core" // 2. With Importance as High. parameter "Importance.High" // 3. They must succeed without exception or the entire bootup fails. parameter "false" _bootup.OnStart("Authentication", "core", BootTask.Importance.High, false, (ctx) => Auth.Init(new AuthWin())); _bootup.OnStart("Environment", "core", BootTask.Importance.High, false, (ctx) => Env.Change("qa")); _bootup.OnStart("Logging Support", "core", BootTask.Importance.High, false, (ctx) => Console.WriteLine("Logging setup in call base.Init(context);")); // Example 2: Fluent API to configure bootup services on startup. // // 1. put into group called "myapp". // 2. Various levels of importance. _bootup.OnStart(BootTask.Named("Themes").InGroup("app").PriorityHigh.MustSucceed().ActionIs((ctx) => Console.WriteLine("Themes setup"))); _bootup.OnStart(BootTask.Named("Widgets").InGroup("app").PriorityHigh.MustSucceed().ActionIs((ctx) => Console.WriteLine("Widgets setup"))); _bootup.OnStart(BootTask.Named("Profiles").InGroup("app").PriorityNormal.CanFail().ActionIs((ctx) => Console.WriteLine("Profiles setup"))); _bootup.OnStart(BootTask.Named("MVC Areas").InGroup("mvc").PriorityHigh.MustSucceed().ActionIs((ctx) => Console.WriteLine("MVC Areas setup"))); _bootup.OnStart(BootTask.Named("MVC Routes").InGroup("mvc").PriorityHigh.MustSucceed().ActionIs((ctx) => Console.WriteLine("MVC Routes setup"))); // Example 3: Run all Startup services. _bootup.StartUp(new AppContext()); // Example 4: Run only selected startup services. _bootup.StartUp(new AppContext(), new string[] { "Environment", "Logging Support" }); // Example 5: Get status info for all the tasks and write to console. _bootup.GetStartupStatus().ForEach(task => Console.WriteLine(string.Format("Task Name: {0}, Group: {1}, Passed: {2}, Importance: {3}, Time: {4}", task.Name, task.Group, task.Success, task.Priority.ToString(), task.ExecutedOn.ToShortTimeString()))); return(BoolMessageItem.True); }
private void runTaskButton_Click(object sender, RoutedEventArgs e) { Tasks.Task task; string taskName = tasksBox.Text; switch (taskName) { case "Benchmark": try { task = new BenchmarkTask(labelBox.Text, productBox.Text, parametersBox.Text, int.Parse(loopsBox.Text), ComputerWindow.SelectedComputers(), parseOSList); } catch (FormatException) { MessageBox.Show("ERROR", "Loops is not a number!"); return; } break; case "Boot": task = new BootTask(ComputerWindow.SelectedComputers(), parseOSList); break; case "Reboot": task = new RebootTask(ComputerWindow.SelectedComputers(), parseOSList); break; case "Shutdown": task = new ShutdownTask(ComputerWindow.SelectedComputers(), parseOSList); break; case "Exec": task = new ExecTask(commandTextBox.Text, ComputerWindow.SelectedComputers(), parseOSList); break; case "Winupdate": task = new WinUpdateTask(ComputerWindow.SelectedComputers(), parseOSList); break; case "Update": task = new UpdateTask(ComputerWindow.SelectedComputers(), parseOSList); break; case "Valeta/Dandia": try { task = new BatTask(zipBox.Text, outputPathcBox.Text, int.Parse(countBox.Text), modeBox.Text, (BatTask.BatType)batTypeBox.SelectedIndex, nocopyBox.IsChecked.Value, ComputerWindow.SelectedComputers(), parseOSList); } catch (FormatException) { MessageBox.Show("ERROR", "Test count is not a number!"); return; } break; default: return; } List <Tuple <string, object> > parameters = task.GetJackParameters(); PowerShell psinstance = PowerShell.Create(); psinstance.Streams.Verbose.DataAdded += jackInformationEventHandler; psinstance.Streams.Progress.DataAdded += jackProgressEventHandler; psinstance.Streams.Debug.DataAdded += jackDebugEventHandler; psinstance.Streams.Error.DataAdded += jackErrorEventHandler; //scriptInvoker.Invoke("Set-ExecutionPolicy Unrestricted Process"); psinstance.AddCommand("Set-ExecutionPolicy"); psinstance.AddParameter("-ExecutionPolicy", "Bypass"); psinstance.AddCommand(SCRIPT_PATH); foreach (var param in parameters) { psinstance.AddParameter(param.Item1, param.Item2); } var results = psinstance.BeginInvoke(); /*foreach (PSObject result in results) * { * AppendOutputText(result.ToString()); * Console.WriteLine(result.ToString()); * }*/ ListBoxItem item = new ListBoxItem(); item.Content = task.ToString(); taskHistoryBox.Items.Add(task); }