/// <summary> /// Ejecuta el proyecto /// </summary> private async Task ExecuteProjectAsync(BlockLogModel block, string project, string context, CancellationToken cancellationToken) { JobProjectManager manager = new JobProjectManager(Logger); // Añade los procesadores manager.AddProcessor(new LibJobProcessor.Cloud.JobCloudManager(Logger)); manager.AddProcessor(new LibJobProcessor.Database.JobDatabaseManager(Logger)); manager.AddProcessor(new LibJobProcessor.FilesShell.JobFileShellManager(Logger)); manager.AddProcessor(new LibJobProcessor.Rest.JobRestManager(Logger)); // Ejecuta el proyecto await manager.ProcessAsync(project, context, cancellationToken); // Asigna los errores if (manager.Errors.Count == 0) { block.Info("La ejecución del proyecto ha terminado correctamente"); } else { string errorTotal = "Error en la ejecución del proyecto"; // Añade los errores foreach (string error in manager.Errors) { if (!string.IsNullOrWhiteSpace(error)) { errorTotal += Environment.NewLine + error.Trim(); } } // Lanza el mensaje de error block.Error(errorTotal); } }
/// <summary> /// Crea el manager de los procesos /// </summary> private static JobProjectManager CreateManager() { JobProjectManager manager = new JobProjectManager(Logger); // Añade los procesadores manager.AddProcessor(new Libraries.LibJobProcessor.Cloud.JobCloudManager(Logger)); manager.AddProcessor(new Libraries.LibJobProcessor.Database.JobDatabaseManager(Logger)); manager.AddProcessor(new Libraries.LibJobProcessor.Powershell.JobPowershellManager(Logger)); manager.AddProcessor(new Libraries.LibJobProcessor.FilesShell.JobFileShellManager(Logger)); // Devuelve el manager de proyecto return(manager); }