public static string RecalcularDV(BE.Usuario _usuario) { Bitacora _bitacoraBll = new Bitacora(); DAL.DigitoVerificador _DVDAL = new DAL.DigitoVerificador(); List <BE.DigitoVerificador> listaDvv = _DVDAL.TraerDVV(); foreach (BE.DigitoVerificador digito in listaDvv) { DataTable tabla = _DVDAL.TraerTabla(digito.nombreTabla); /* CALCULO Y COMPARO DVV LA TABLA VERIFICADA CON EL ALMACENADO*/ long dvv = 0; /* CALCULO Y COMPARO DVH DE CADA REGISTRO DE LA TABLA VERIFICADA */ foreach (DataRow fila in tabla.Rows) { string identificador = ""; long dvh = 0; foreach (DataColumn col in tabla.Columns) { long sumador = 0; if (col.ColumnName == "id" || col.ColumnName == "legajo") { identificador = col.ColumnName; } if (col.ColumnName != "id" && col.ColumnName != "legajo" && col.ColumnName != "dvh") { var cadena_ascii = ASCIIEncoding.ASCII.GetBytes(fila[col].ToString()); for (int i = 0; i < cadena_ascii.Length; i++) { sumador += long.Parse(cadena_ascii[i].ToString()) * (i + 1); } dvh += sumador; } } dvv += dvh; _DVDAL.ActualizarDVH(dvh, digito.nombreTabla, identificador, fila[identificador].ToString()); } _DVDAL.ActualizarDVV(dvv, digito.nombreTabla); } string descripcion_bitacora = $@"Se reestablecio la integridad del sistema"; _bitacoraBll.RegistrarBitacora(_usuario, descripcion_bitacora, 1); return(descripcion_bitacora); }
public static int CalcularDVV(string entidad) { DAL.DigitoVerificador digVerificador_DAL = new DAL.DigitoVerificador(); int sumaDVH; sumaDVH = digVerificador_DAL.ObtenerSumaDVH(entidad); if (sumaDVH > -1) { return(digVerificador_DAL.ActualizarDVV(entidad, sumaDVH)); } else { throw new NotImplementedException(); } }
private static List <string> VerificarIntegridadUsuario() { List <string> ErrorIntegridad_Usuario = new List <string>(); List <BE.Usuario> listUsu_BE = new List <BE.Usuario>(); BLL.Usuario usu_BLL = new Usuario(); listUsu_BE = usu_BLL.SelectAll(); foreach (BE.Usuario item in listUsu_BE) { string cadenaDVH = item.activo.ToString() + item.nom_usuario + item.nombre + item.apellido + item.documento.ToString() + item.domicilio + item.telefono + item.email + item.contraseña + item.cant_ingresos_incorrectos.ToString() + item.es_primer_login.ToString() + item.id_idioma.ToString(); int DVHCalculado = UTILITIES.DigitoVerificador.ObtenerDVH(cadenaDVH); if (item.DVH == DVHCalculado) { Console.WriteLine("DVH correcto"); } else { string str = "USUARIO - Inconsistencia en la entidad Usuario en el registro numero (ID): " + item.id; ErrorIntegridad_Usuario.Add(str); } } DAL.DigitoVerificador digitoVerificador_DAL = new DAL.DigitoVerificador(); int DVVCalculado = digitoVerificador_DAL.ObtenerSumaDVH("Usuario"); if (DVVCalculado == GetDVV("Usuario")) { Console.WriteLine("DVV correcto"); } else { string str = "Inconsistencia en la entidad Usuario al calcular el DVV"; ErrorIntegridad_Usuario.Add(str); } return(ErrorIntegridad_Usuario); }
private static List <string> VerificarIntegridadUsuarioPatente() { List <string> ErrorIntegridad_UsuPat = new List <string>(); List <BE.UsuarioPatente> listUsuPat_BE = new List <BE.UsuarioPatente>(); BLL.UsuarioPatente usuPat_BLL = new UsuarioPatente(); listUsuPat_BE = usuPat_BLL.SelectAll(); foreach (BE.UsuarioPatente item in listUsuPat_BE) { string cadenaDVH = item.id_patente.ToString() + item.id_usuario.ToString() + item.patenteNegada.ToString(); int DVHCalculado = UTILITIES.DigitoVerificador.ObtenerDVH(cadenaDVH); if (item.DVH == DVHCalculado) { Console.WriteLine("DVH correcto"); } else { string str = "UsuarioPatente - Inconsistencia en la entidad UsuarioPatente en el registro numero (ID): " + item.id_patente + " - " + item.id_usuario; ErrorIntegridad_UsuPat.Add(str); } } DAL.DigitoVerificador digitoVerificador_DAL = new DAL.DigitoVerificador(); int DVVCalculado = digitoVerificador_DAL.ObtenerSumaDVH("UsuarioPatente"); if (DVVCalculado == GetDVV("UsuarioPatente")) { Console.WriteLine("DVV correcto"); } else { string str = "Inconsistencia en la entidad UsuarioPatente al calcular el DVV"; ErrorIntegridad_UsuPat.Add(str); } return(ErrorIntegridad_UsuPat); }
private static List <string> VerificarIntegridadReserva() { List <string> ErrorIntegridad_Reserva = new List <string>(); List <BE.Reserva> listReserva_BE = new List <BE.Reserva>(); BLL.Reserva reserva_BLL = new Reserva(); listReserva_BE = reserva_BLL.SelectAll(); foreach (BE.Reserva item in listReserva_BE) { string cadenaDVH = item.id_usuario.ToString() + item.id_cliente.ToString() + item.id_habitacion.ToString() + item.activo.ToString() + item.fecha_ingreso.ToString() + item.fecha_salida.ToString(); int DVHCalculado = UTILITIES.DigitoVerificador.ObtenerDVH(cadenaDVH); if (item.DVH == DVHCalculado) { Console.WriteLine("DVH correcto"); } else { string str = "Reserva - Inconsistencia en la entidad Reserva en el registro numero (ID): " + item.id_reserva; ErrorIntegridad_Reserva.Add(str); } } DAL.DigitoVerificador digitoVerificador_DAL = new DAL.DigitoVerificador(); int DVVCalculado = digitoVerificador_DAL.ObtenerSumaDVH("Reserva"); if (DVVCalculado == GetDVV("Reserva")) { Console.WriteLine("DVV correcto"); } else { string str = "Inconsistencia en la entidad Reserva al calcular el DVV"; ErrorIntegridad_Reserva.Add(str); } return(ErrorIntegridad_Reserva); }
private static List <string> VerificarIntegridadCliente() { List <string> ErrorIntegridad_Cliente = new List <string>(); List <BE.Cliente> listCliente_BE = new List <BE.Cliente>(); BLL.Cliente cliente_BLL = new Cliente(); listCliente_BE = cliente_BLL.SelectAll(); foreach (BE.Cliente item in listCliente_BE) { string cadenaDVH = item.activo.ToString() + item.nombre.ToString() + item.apellido.ToString() + item.documento.ToString() + item.telefono.ToString() + item.email.ToString(); int DVHCalculado = UTILITIES.DigitoVerificador.ObtenerDVH(cadenaDVH); if (item.DVH == DVHCalculado) { Console.WriteLine("DVH correcto"); } else { string str = "Cliente - Inconsistencia en la entidad Cliente en el registro numero (ID): " + item.id_cliente; ErrorIntegridad_Cliente.Add(str); } } DAL.DigitoVerificador digitoVerificador_DAL = new DAL.DigitoVerificador(); int DVVCalculado = digitoVerificador_DAL.ObtenerSumaDVH("Cliente"); if (DVVCalculado == GetDVV("Cliente")) { Console.WriteLine("DVV correcto"); } else { string str = "Inconsistencia en la entidad Cliente al calcular el DVV"; ErrorIntegridad_Cliente.Add(str); } return(ErrorIntegridad_Cliente); }
private static List <string> VerificarIntegridadBitacora() { List <string> ErrorIntegridad_Bitacora = new List <string>(); List <BE.Bitacora> listBitacora_BE = new List <BE.Bitacora>(); BLL.Bitacora.BAJA bitacora_BLL = new Bitacora.BAJA(); listBitacora_BE = bitacora_BLL.SelectAll(); foreach (BE.Bitacora item in listBitacora_BE) { string cadenaDVH = item.id_usuario.ToString() + item.nombre_usuario.ToString() + item.fecha.ToString("yyyy-MM-dd HH:mm:ss") + item.criticidad.ToString() + item.descripcion.ToString(); int DVHCalculado = UTILITIES.DigitoVerificador.ObtenerDVH(cadenaDVH); if (item.DVH == DVHCalculado) { Console.WriteLine("DVH correcto"); } else { string str = "BITACORA - Inconsistencia en la entidad Bitácora en el registro numero (ID): " + item.id_log; ErrorIntegridad_Bitacora.Add(str); } } DAL.DigitoVerificador digitoVerificador_DAL = new DAL.DigitoVerificador(); int DVVCalculado = digitoVerificador_DAL.ObtenerSumaDVH("Bitacora"); if (DVVCalculado == GetDVV("Bitacora")) { Console.WriteLine("DVV correcto"); } else { string str = "Inconsistencia en la entidad Bitacora al calcular el DVV"; ErrorIntegridad_Bitacora.Add(str); } return(ErrorIntegridad_Bitacora); }
public static int VerificarDV() { string nombre_usuario = Cifrado.Encriptar("SYSTEM", true); DAL.Usuario _usuarioDal = new DAL.Usuario(); Bitacora _bitacoraBll = new Bitacora(); try { BE.Usuario usr = _usuarioDal.GetUsuarioUser(nombre_usuario); int error = 0; DAL.DigitoVerificador _DVDAL = new DAL.DigitoVerificador(); List <BE.DigitoVerificador> listaDvv = _DVDAL.TraerDVV(); foreach (BE.DigitoVerificador digito in listaDvv) { DataTable tabla = _DVDAL.TraerTabla(digito.nombreTabla); /* CALCULO Y COMPARO DVV LA TABLA VERIFICADA CON EL ALMACENADO*/ if (tabla.Rows.Count != 0) { long resultado = 0; foreach (DataRow r in tabla.Rows) { resultado += long.Parse(r["dvh"].ToString()); } if (resultado != digito.valorDvv) { // registro en bitacora string descripcion_bitacora = string.Format(@"Error de integridad: Digito Verificador Vertical de la tabla {0} no coincide. Calculado = {1} , Almacenado = {2}", digito.nombreTabla, resultado, digito.valorDvv); _bitacoraBll.RegistrarBitacora(usr, descripcion_bitacora, 1, 0); error = 1; } /* CALCULO Y COMPARO DVH DE CADA REGISTRO DE LA TABLA VERIFICADA */ foreach (DataRow fila in tabla.Rows) { long dvh = 0; foreach (DataColumn col in tabla.Columns) { long sumador = 0; if (col.ColumnName != "id" && col.ColumnName != "legajo" && col.ColumnName != "dvh") { var cadena_ascii = ASCIIEncoding.ASCII.GetBytes(fila[col].ToString()); for (int i = 0; i < cadena_ascii.Length; i++) { sumador += long.Parse(cadena_ascii[i].ToString()) * (i + 1); } dvh += sumador; } } if (dvh != long.Parse(fila["dvh"].ToString())) { // registro en bitacora string descripcion_bitacora = string.Format(@"Error de integridad: Digito Verificador Horizontal de la tabla {0} no coincide. Calculado = {1} , Almacenado = {2}", digito.nombreTabla, dvh, fila["dvh"].ToString()); _bitacoraBll.RegistrarBitacora(usr, descripcion_bitacora, 1, 0); error = 1; } } } else { long resultado = 0; if (resultado != digito.valorDvv) { // registro en bitacora string descripcion_bitacora = string.Format(@"Error de integridad: Digito Verificador Vertical de la tabla {0} no coincide. Calculado = {1} , Almacenado = {2}", digito.nombreTabla, resultado, digito.valorDvv); _bitacoraBll.RegistrarBitacora(usr, descripcion_bitacora, 1, 0); error = 1; } } } return(error); } catch (Exception e) { throw new Exception(e.Message); } }
/*Para calcular el DV*/ public static long CalcularDV(Object obj, string nTabla) { Type t = obj.GetType(); PropertyInfo[] propiedades = t.GetProperties(); DAL.DigitoVerificador _DVDAL = new DAL.DigitoVerificador(); DataTable tabla = _DVDAL.TraerTabla(nTabla); long dvh = 0; foreach (var prop in propiedades) { if (prop.Name != "id" && prop.Name != "legajo" && prop.Name != "dvh") { if (!prop.PropertyType.IsGenericType) { if (prop.PropertyType.Assembly.FullName == t.Assembly.FullName) { var subProp1 = prop.GetValue(obj); PropertyInfo[] subpropiedades = subProp1.GetType().GetProperties(); foreach (var p in subpropiedades) { if (p.Name == "id" || p.Name == "legajo") { if (p.GetValue(subProp1) != null) { string cadena = p.GetValue(subProp1).ToString(); var cadena_ascii = ASCIIEncoding.ASCII.GetBytes(cadena); long sumador = 0; for (int i = 0; i < cadena_ascii.Length; i++) { sumador += long.Parse(cadena_ascii[i].ToString()) * (i + 1); } dvh += sumador; } } } } else { if (prop.GetValue(obj) != null) { string cadena = prop.GetValue(obj).ToString(); var cadena_ascii = ASCIIEncoding.ASCII.GetBytes(cadena); long sumador = 0; for (int i = 0; i < cadena_ascii.Length; i++) { sumador += long.Parse(cadena_ascii[i].ToString()) * (i + 1); } dvh += sumador; } } } } } long sum = 0; int posProp = 0; for (int i = 0; i < propiedades.Length; i++) { if (propiedades[i].Name == "id" || propiedades[i].Name == "legajo") { posProp = i; } } foreach (DataRow row in tabla.Rows) { if (propiedades[posProp].GetValue(obj) == null || (int)propiedades[posProp].GetValue(obj) == 0) { sum += long.Parse(row["dvh"].ToString()); } } long dvv = sum + dvh; _DVDAL.ActualizarDVV(dvv, nTabla); return(dvh); }
public static int GetDVV(string entidad) { DAL.DigitoVerificador DVV_DAL = new DAL.DigitoVerificador(); return(DVV_DAL.GetDVV(entidad)); }