예제 #1
0
        public Usuario GetUsuarioPorId(string id)
        {
            Usuario resultado = new Usuario();

            string connectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString();
            Engine engine           = new Engine(connectionString);

            string query = "";

            query = string.Format("select Id,Nombres,Apellido1,Apellido2,Email,Telefono,Usuario from usuarios where Id = {0} and fechaBaja is NULL", id);

            DataTable table = engine.Query(query);

            if (table != null && table.Rows != null && table.Rows.Count > 0)
            {
                resultado.Id              = int.Parse(table.Rows[0]["Id"].ToString());
                resultado.Nombres         = table.Rows[0]["Nombres"].ToString();
                resultado.ApellidoPrimero = table.Rows[0]["Apellido1"].ToString();
                resultado.ApellidoSegundo = table.Rows[0]["Apellido2"].ToString();
                resultado.Email           = table.Rows[0]["Email"].ToString();
                resultado.Telefono        = table.Rows[0]["Telefono"].ToString();
                resultado.Login           = table.Rows[0]["Usuario"].ToString();

                FotografiaService fotografiaService = new FotografiaService();
                resultado.Fotografias = fotografiaService.ObtenerFotosUsuario(resultado.Id);
            }

            return(resultado);
        }
예제 #2
0
        public Usuario GetUsuarioAutenticado(string login, string password)
        {
            Usuario resultado = new Usuario();

            resultado.Id = 0;

            string passwordHash = EncryptionService.MD5Hash(password);

            string connectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString();
            Engine engine           = new Engine(connectionString);

            StringBuilder query = new StringBuilder();

            query.Append("select ");
            query.Append(" usuarios.id, usuarios.usuario, usuarios.nombres, usuarios.apellido1, usuarios.apellido2, usuarios.telefono, usuarios.email, usuarios.fechaBaja, usuarios.idperfilusuario  ");
            query.Append(" ,passwords.Password ");
            query.Append(" from usuarios ");
            query.Append(" inner join historicopasswords ");
            query.Append(" on usuarios.id = historicopasswords.idusuario ");
            query.Append(" inner join passwords ");
            query.Append(" on historicopasswords.id = passwords.idhistoricopassword ");
            query.Append(" where ");
            query.Append(" usuarios.Usuario = '" + login.ToLower().Trim() + "' ");

            DataTable table = engine.Query(query.ToString());

            if (table != null && table.Rows != null && table.Rows.Count > 0)
            {
                bool passwordVigente = false;
                foreach (DataRow fila in table.Rows)
                {
                    if (fila["fechabaja"].ToString().ToLower().Equals("") || fila["fechabaja"].ToString().ToLower().Equals("null"))
                    {
                        passwordVigente = true;

                        if (fila["Password"].ToString().Trim().Equals(passwordHash))
                        {
                            resultado.Id              = int.Parse(fila["Id"].ToString());
                            resultado.Nombres         = fila["Nombres"].ToString();
                            resultado.ApellidoPrimero = fila["Apellido1"].ToString();
                            resultado.ApellidoSegundo = fila["Apellido2"].ToString();
                            resultado.Login           = fila["Usuario"].ToString();
                            resultado.Email           = fila["Email"].ToString();
                            resultado.Telefono        = fila["Telefono"].ToString();

                            if (fila["idperfilusuario"].ToString().Equals(ConfigurationManager.AppSettings["idPerfilAdministrador"].ToString()))
                            {
                                resultado.PerfilKey = ConfigurationManager.AppSettings["adminKey"].ToString();
                            }

                            FotografiaService fotografiaService = new FotografiaService();
                            resultado.Fotografias = fotografiaService.ObtenerFotosUsuario(resultado.Id);

                            resultado.Token = CommonService.GenerarToken(resultado.Login, fila["idperfilusuario"].ToString());
                        }
                        else
                        {
                            resultado.IncidenciaUsuario = "Password incorrecto.";
                        }
                    }
                }

                if (!passwordVigente)
                {
                    resultado.IncidenciaUsuario = "La cuenta tiene contraseña caducada. Contactar con el administrador.";
                }
            }
            else
            {
                resultado.IncidenciaUsuario = "No se ha encontrado Usuario con ese nombre de login.";
            }

            return(resultado);
        }