Пример #1
0
        private void cmdRevert_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            try
            {
                var    gestor           = new IssueManager();
                string directorioActual = string.Empty;
                string scriptActual     = string.Empty;
                IEnumerable <IssueEntity> listaIncidencias = new List <IssueEntity>();
                try
                {
                    gestor.BeginTransaction();
                    listaIncidencias = ObtenerIncidenciasSeleccionadas(tvwTarget, SortDirection.Descending);
                    foreach (var incidencia in listaIncidencias)
                    {
                        directorioActual = incidencia.Nombre;

                        // recupera los scripts en orden inverso.
                        for (int i = incidencia.Scripts.Keys.Count - 1; i >= 0; i--)
                        {
                            scriptActual = incidencia.Scripts[i + 1].Nombre;
                            gestor.RevertirScript(incidencia.Scripts[i + 1]);
                        }

                        incidencia.Aplicada = false;
                    }

                    gestor.CommitTransaction();
                }
                catch (Exception ex)
                {
                    gestor.RollbackTransaction();
                    foreach (var i in listaIncidencias)
                    {
                        i.Aplicada = false;
                    }

                    frmMensaje frm = new frmMensaje();
                    frm.Mensaje = string.Format("Se ha producido un error al revertir 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;
        }
Пример #2
0
        private void cmdInicializar_Click(object sender, EventArgs e)
        {
            var gestor = new IssueManager();

            try
            {
                gestor.BeginTransaction();

                gestor.EjecutarSql(kVersionUp);
                gestor.EjecutarSql(kBitacoraActualizacionUp);

                gestor.CommitTransaction();
            }
            catch (Exception ex)
            {
                gestor.RollbackTransaction();
                frmMensaje frm = new frmMensaje();
                frm.Mensaje = "Se produjo un error inicializando la base de datos.";
                frm.Detalle = ex.Message + "\n" + "\n" + ex.StackTrace;
                frm.ShowDialog();
            }

            ReadAndLoadData();
        }
Пример #3
0
        private void cmdRegistrar_Click(object sender, EventArgs e)
        {
            string mensaje =
                "Al registrar un paquete, los scripts no se aplican (no hay execucion de los scripts), solo se registran en la base de datos como aplicados. Esta opcion se utiliza para que en la base de datos figuren los scripts aplicados manualmente. ¿Desea continuar?";

            if (MessageBox.Show(mensaje, "Atención", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                this.Cursor = Cursors.WaitCursor;

                if (txtSourceFolder.Text == string.Empty)
                {
                    MessageBox.Show("Debe indicar la carpeta origen. La misma debe contener las incidencias a aplicar");
                    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.RegistrarAplicacionDeScript(script);
                            }

                            DeseleccionarNodo(tvwSource, incidencia);
                        }

                        gestor.CommitTransaction();
                    }
                    catch (Exception ex)
                    {
                        gestor.RollbackTransaction();
                        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();
                }
                catch (ApplicationException appEx)
                {
                    MessageBox.Show(appEx.Message);
                }

                this.Cursor = Cursors.Default;
            }
        }
Пример #4
0
        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;
        }