private void cmdDeploy_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; if (txtSourceFolder.Text == string.Empty) { string mensaje = "Debe indicar la carpeta origen. La misma debe contener las incidencias a aplicar"; MessageBox.Show(mensaje); this.Cursor = Cursors.Default; return; } try { var gestor = new IssueManager(); string directorioActual = string.Empty; string scriptActual = string.Empty; try { var listaIncidencias = ObtenerIncidenciasSeleccionadas(tvwSource, SortDirection.Ascending); gestor.BeginTransaction(); foreach (IssueEntity incidencia in listaIncidencias) { directorioActual = incidencia.Nombre; foreach (ScriptEntity script in incidencia.Scripts.Values) { scriptActual = script.Nombre; gestor.AplicarScript(script); gestor.SaveTransaction(script.Nombre + "_" + script.Secuencia); } DeseleccionarNodo(tvwSource, incidencia); incidencia.Aplicada = true; } gestor.CommitTransaction(); } catch (Exception ex) { gestor.RollbackTransaction(); var listaIncidencias = ObtenerIncidenciasSeleccionadas(tvwSource, SortDirection.Ascending); foreach (var i in listaIncidencias) { i.Aplicada = false; } frmMensaje frm = new frmMensaje(); frm.Mensaje = string.Format("Se ha producido un error al aplicar el script {0} de la incidencia {1}.", scriptActual, directorioActual); frm.Detalle = ex.Message + "\n" + "\n" + ex.StackTrace; frm.ShowDialog(); } LeerIncidenciasAplicadas(); LeerRepositorioDeIncidencias(); MostrarIncidenciasAplicadas(); MostrarRepositorioDeIncidencias(); } catch (ApplicationException appEx) { MessageBox.Show(appEx.Message); } this.Cursor = Cursors.Default; }