/// <summary> /// Carga un script en texto /// </summary> public void LoadScript(string script) { // Inicializa el script Script = script; // Limpia los datos del manager InputParameters.Clear(); OutputItems.Clear(); Errors.Clear(); }
/// <summary> /// Ejecuta el script /// </summary> public void Execute(Action endCallback = null) { Task task; PowerShellInstance processor = new PowerShellInstance(Script, InputParameters); // Limpia los datos de salida OutputItems.Clear(); Errors.Clear(); // Asigna el manejador de eventos processor.EndExecute += (sender, args) => TreatEndScript(processor, endCallback); // Crea la tarea para la ejecución en otro hilo task = new Task(() => processor.Process()); // Arranca la tarea try { task.Start(); } catch (Exception exception) { Errors.Add($"Error when execute script {exception.Message}"); endCallback?.Invoke(); EndExecute?.Invoke(this, EventArgs.Empty); } }