コード例 #1
0
        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));
        }
コード例 #2
0
 public void Insertar(BE.DVV dvv)
 {
     try
     {
         mp.Insertar(dvv);
     }
     catch (Exception) { }
 }
コード例 #3
0
        public int Insertar(BE.DVV dvv)
        {
            int fa;

            SqlParameter[] parametros =
            {
                new SqlParameter("@TABLA", dvv.Tabla),
                new SqlParameter("@DVV",   dvv.Digito)
            };
            fa = sh.Escribir("INSERTAR_DVV", parametros);
            return(fa);
        }
コード例 #4
0
        public void ActualizarDVV()
        {
            List <BE.DVV>     lsDVV      = this.Listar();
            List <BE.Usuario> lsUsuarios = gestorUsuario.Listar();
            List <BE.Capsula> lsCapsulas = gestorCapsula.Listar();

            foreach (BE.DVV dvv in lsDVV)
            {
                if (dvv.Tabla == "USUARIO")
                {
                    BE.DVV nuevoDVV = new BE.DVV();
                    nuevoDVV.Tabla = dvv.Tabla;
                    if (lsUsuarios.Count > 0)
                    {
                        foreach (BE.Usuario u in lsUsuarios)
                        {
                            nuevoDVV.Digito = nuevoDVV.Digito + u.DVH;
                        }
                        nuevoDVV.Digito = GestorHash.GenerarHash(nuevoDVV.Digito);
                        this.Insertar(nuevoDVV);
                        nuevoDVV = null;
                    }
                }

                if (dvv.Tabla == "CAPSULA")
                {
                    BE.DVV nuevoDVV = new BE.DVV();
                    nuevoDVV.Tabla = dvv.Tabla;
                    if (lsCapsulas.Count > 0)
                    {
                        foreach (BE.Capsula c in lsCapsulas)
                        {
                            nuevoDVV.Digito = nuevoDVV.Digito + c.DVH;
                        }
                        nuevoDVV.Digito = GestorHash.GenerarHash(nuevoDVV.Digito);
                        this.Insertar(nuevoDVV);
                        nuevoDVV = null;
                    }
                }
            }
        }
コード例 #5
0
        public List <BE.DVV> Listar()
        {
            DataTable     tabla = sh.Leer("LISTAR_DVV", null);
            List <BE.DVV> ls    = new List <BE.DVV>();

            foreach (DataRow r in tabla.Rows)
            {
                BE.DVV dvv = new BE.DVV();
                dvv.Tabla = (string)r["TABLA"];
                try
                {
                    dvv.Digito = (string)r["DVV"];
                }
                catch (Exception)
                {
                    dvv.Digito = null;
                    throw;
                }
                ls.Add(dvv);
            }
            return(ls);
        }
コード例 #6
0
        public List <BE.DVV> Leer()
        {
            var ls = new List <BE.DVV>();

            BE.DVV beDVV = new BE.DVV();

            var dt = _accesoBaseDeDatos.Seleccionar(new BE.DVV(), false);

            foreach (DataRow row in dt.Rows)
            {
                var aDVV = new BE.DVV
                {
                    Id          = Convert.ToInt32(row["Id"]),
                    NombreTabla = row["NombreTabla"].ToString().Trim(),
                    Valor       = row["Valor"].ToString().Trim(),
                };

                ls.Add(aDVV);
            }

            return(ls);
        }
コード例 #7
0
        /// <summary>
        /// Obtiene un DVV por nombre de tabla.
        /// </summary>
        /// <param name="nombreTabla">Nombre del DVV.</param>
        /// <returns></returns>
        public BE.DVV ObtenerDVVPorNombreDeTabla(string nombreTabla)
        {
            var dtDVV = _accesoBaseDeDatos.Seleccionar(new BE.DVV()
            {
                NombreTabla = nombreTabla
            }, true);

            if (dtDVV.Rows.Count == 0)
            {
                return(null);
            }

            var row  = dtDVV.Rows[0];
            var aDVV = new BE.DVV
            {
                Id          = Convert.ToInt32(row["Id"]),
                NombreTabla = row["NombreTabla"].ToString().Trim(),
                Valor       = row["Valor"].ToString().Trim(),
            };

            return(aDVV);
        }
コード例 #8
0
 /// <summary>
 /// Quita un DVV.
 /// </summary>
 /// <param name="pDvv">DVV a quitar.</param>
 /// <returns></returns>
 public ResultadoBd Quitar(BE.DVV pDvv)
 {
     return(_dalManagerDvv.Borrar(pDvv));
 }
コード例 #9
0
 /// <summary>
 /// Edita un DVV.
 /// </summary>
 /// <param name="pDvv">DVV a editar.</param>
 /// <returns></returns>
 public ResultadoBd Editar(BE.DVV pDvv)
 {
     return(_dalManagerDvv.Actualizar(pDvv));
 }
コード例 #10
0
 /// <summary>
 /// Agrega un nuevo DVV al sistema.
 /// </summary>
 /// <param name="pDvv">DVV a agregar.</param>
 /// <returns></returns>
 public ResultadoBd Agregar(BE.DVV pDvv)
 {
     return(_dalManagerDvv.Insertar(pDvv));
 }
コード例 #11
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);
        }
コード例 #12
0
 /// <summary>
 /// Borra un DVV.
 /// </summary>
 /// <param name="pDVV">DVV.</param>
 /// <returns></returns>
 public ResultadoBd Borrar(BE.DVV pDVV)
 {
     return(_accesoBaseDeDatos.Borrar(pDVV));
 }
コード例 #13
0
 /// <summary>
 /// Actualiza un DVV.
 /// </summary>
 /// <param name="pDVV">DVV.</param>
 /// <returns></returns>
 public ResultadoBd Actualizar(BE.DVV pDVV)
 {
     return(_accesoBaseDeDatos.Actualizar(pDVV));
 }
コード例 #14
0
 /// <summary>
 /// Inserta un DVV.
 /// </summary>
 /// <param name="pDVV">DVV.</param>
 /// <returns></returns>
 public ResultadoBd Insertar(BE.DVV pDVV)
 {
     return(_accesoBaseDeDatos.Insertar(pDVV));
 }