public ResultadoBd ActualizarDvvDeTabla(string nombreTabla, List <string> lstDvh) { string dvvNuevo = null; foreach (string dvh in lstDvh) { dvvNuevo += dvh; } dvvNuevo = DigitoVerificador.CrearHash(dvvNuevo); BE.DVV dvvBase = ObtenerDvvPorNombreDeTabla(nombreTabla); if (dvvBase != null) { dvvBase.Valor = dvvNuevo; } else { dvvBase = new BE.DVV { NombreTabla = nombreTabla, Valor = dvvNuevo }; return(Agregar(dvvBase)); } return(Editar(dvvBase)); }
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); }
public string GenerarDvh(BE.Usuario usuario) { return DigitoVerificador.CrearHash(usuario.Id + usuario.Apellido + usuario.Nombre + usuario.NombreUsuario + usuario.Password + (usuario.Activo == true ? "True" : "False") + usuario.Idioma.Id); }