Beispiel #1
0
        public Resultado IniciarSesion(BE.Usuario usuario, EstadoBaseDeDatos estadoBaseDeDatos)
        {
            BLL.Bitacora bllBitacora = new BLL.Bitacora();

            if (String.IsNullOrEmpty(usuario.NombreUsuario) || String.IsNullOrEmpty(usuario.Password))
                return new Resultado(true, "Debe ingresar el usuario y la contraseña", TipoMensaje.NORMAL, "Campos vacios");

            if (estadoBaseDeDatos.EsValida)
            {

                BE.Usuario usuarioBase = ObtenerUsuarioPorNombreDeUsuario(usuario.NombreUsuario);

                if (usuarioBase != null)
                {

                    if (Encriptador.ValidarCadena(usuario.Password, usuarioBase.Password))
                    {
                        ManejadorSesion manejadorSesion = ManejadorSesion.Instancia;

                        bllBitacora.GrabarBitacora(usuarioBase, "Inicio de sesión", new BE.TipoEvento() {Id = 2, Descripcion = "Mensaje"});

                        manejadorSesion.EstablecerSesion(usuarioBase, estadoBaseDeDatos);

                        return new Resultado(false, "Ok");
                    }

                    return new Resultado(true, "Usuario o contraseña incorrectos", TipoMensaje.ERROR, "Error");
                }

                return new Resultado(true, "Usuario o contraseña incorrectos", TipoMensaje.ERROR, "Error");
            }
            else
            {
                if (usuario.NombreUsuario.Equals(USUARIO_SERVICIO) && usuario.Password.Equals(PASS_USUARIO_SERVICIO))
                {
                    BE.Usuario beUsuario = new BE.Usuario();

                    beUsuario.NombreUsuario = USUARIO_SERVICIO;
                    beUsuario.Password = PASS_USUARIO_SERVICIO;
                    
                    ManejadorSesion.Instancia.EstablecerSesion(beUsuario, estadoBaseDeDatos);

                    return new Resultado(false, "Ok");
                }
                else
                {
                    return new Resultado(true, "Usuario o contraseña incorrectos", TipoMensaje.ERROR, "Error");
                }
            }
        }
Beispiel #2
0
        private async Task ValidarBaseDeDatos()
        {
            BLL.DVV bllDvv = new BLL.DVV();

            _estadoBd = bllDvv.ValidarBasedeDatos();

            if (!_estadoBd.EsValida)
            {
                string mensaje = String.Empty;

                foreach (string registro in _estadoBd.RegistrosCorruptos)
                {
                    mensaje += registro + Environment.NewLine;
                }

                //ManejadorSesion.Instancia.ObtenerSesion().BaseValida = false;

                Mensaje vieMensaje = new Mensaje(TipoMensaje.ERROR, "Base de datos corrupta", mensaje + @"Se habilitará solo la opción de restore al iniciar sesión con el usuario de servicio");

                var resultadoMensaje = await DialogHost.Show(vieMensaje, "dhMensajes");
            }
        }
        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);
        }