private async Task RealizarBackup()
        {
            BLL.Sistema   bllSistema = new BLL.Sistema();
            BLL.Resguardo bllBackup  = new BLL.Resguardo();
            BE.Resguardo  resguardo  = new BE.Resguardo()
            {
                Directorio = txtDirectorio.Text + @"\", NombreArchivo = txtNombreArchivo.Text + ".bak"
            };

            bllBackup.Agregar(resguardo);

            if (bllSistema.Backup("DesignacionArbitral", txtDirectorio.Text, txtNombreArchivo.Text))
            {
                Mensaje vieMensaje = new Mensaje(TipoMensaje.CORRECTO, "Backup", "Se realizo el backup con éxito");

                await DialogHost.Show(vieMensaje, "dhMensajes");
            }
            else
            {
                foreach (BE.Resguardo objResguardo in bllBackup.ObtenerResguardos())
                {
                    if (objResguardo.NombreArchivo.Equals(resguardo.NombreArchivo))
                    {
                        resguardo.Id = objResguardo.Id;
                        break;
                    }
                }

                bllBackup.Quitar(resguardo);

                Mensaje vieMensaje = new Mensaje(TipoMensaje.ERROR, "Backup", "No se pudo relizar el backup");

                await DialogHost.Show(vieMensaje, "dhMensajes");
            }
        }
        private async Task Restore()
        {
            BLL.Sistema bllSistema = new BLL.Sistema();

            if (bllSistema.Restore("DesignacionArbitral", _resguardoSeleccionado.Directorio,
                                   _resguardoSeleccionado.NombreArchivo))
            {
                Mensaje vieMensaje = new Mensaje(TipoMensaje.CORRECTO, "Restore", "Se realizó el restore con éxito");

                await DialogHost.Show(vieMensaje, "dhMensajes");
            }
            else
            {
                Mensaje vieMensaje = new Mensaje(TipoMensaje.ERROR, "Restore", "No se pudo relizar el restore");

                await DialogHost.Show(vieMensaje, "dhMensajes");
            }
        }
예제 #3
0
        public EstadoBaseDeDatos ValidarBasedeDatos()
        {
            BLL.Sistema       bllSistema = new BLL.Sistema();
            EstadoBaseDeDatos resultado  = new EstadoBaseDeDatos();

            try
            {
                string todosLosDvh = null;
                resultado.EsValida = true;

                //CALCULO DE TODOS LOS DVH
                //Obtengo todos los nombres de las tablas de la base de datos
                List <string> nombresDeTablas = ObtenerNombresDeTablas();

                foreach (string nombreTabla in nombresDeTablas)
                {
                    //Obtengo el contenido de la tabla actual
                    DataTable tabla        = bllSistema.LeerTablaPorNombre(nombreTabla);
                    string    dvvCalculado = "";
                    bool      tablaValida  = true;

                    for (int row = 0; row <= tabla.Rows.Count - 1; row++)
                    {
                        //Calculo el DVH
                        string dvhCalculado = DigitoVerificador.CalcularDvhDeFila(tabla, row);

                        todosLosDvh = todosLosDvh + dvhCalculado;

                        if (!tabla.Rows[row]["DVH"].ToString().Equals(dvhCalculado))
                        {
                            //Si el DVH guardado en la base es distinto al DVH recien calculado
                            //indica que hubo una modificacion del registro, sin actualizar el DVH
                            resultado.RegistrosCorruptos.Add("Error de integridad en la tabla -" + nombreTabla +
                                                             "- en el registro " + tabla.Rows[row][0].ToString());
                            resultado.EsValida = false;
                            tablaValida        = false;
                        }

                        dvvCalculado += tabla.Rows[row]["DVH"].ToString();
                    }

                    if (tablaValida)
                    {
                        BE.DVV aDvv = _dalManagerDvv.ObtenerDVVPorNombreDeTabla(nombreTabla);
                        dvvCalculado = DigitoVerificador.CrearHash(dvvCalculado);

                        resultado.EsValida = dvvCalculado.Equals(aDvv.Valor);

                        if (!resultado.EsValida)
                        {
                            resultado.RegistrosCorruptos.Add(
                                "Error de integridad en la tabla -" + nombreTabla + "-. DVV vertical corrupto");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Log.Error("Error al validar la integridad de la base.", ex);
                resultado.RegistrosCorruptos.Add("No se pudo validar la integridad de la base.");
                resultado.EsValida = false;

                return(resultado);
            }

            return(resultado);
        }