Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
        /*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);
        }