public StaffRequestModel CreateNewStaff(StaffRequestModel staffRequestModel, string username)
        {
            Staff result;
            var   user = this._appUserRepository.GetSingle(s => s.UserName.Trim() == staffRequestModel.Username);

            if (user != null)
            {
                result = this._staffRepository.Add(new Staff
                {
                    FirstName   = staffRequestModel.FirstName,
                    LastName    = staffRequestModel.LastName,
                    Sex         = staffRequestModel.Sex,
                    BirthDate   = staffRequestModel.BirthDate,
                    PhoneNumber = staffRequestModel.PhoneNumber,
                    Address     = staffRequestModel.Address,
                    CreatedDate = DateTime.Now,
                    UpdatedDate = DateTime.Now,
                    Lock        = true,
                    CreatedUser = username,
                    UserId      = user.UserId
                });
            }
            else
            {
                user = this._appUserRepository.Add(new AppUser
                {
                    UserName = staffRequestModel.Username,
                    PassWord = IdentytiHelper.HashPassword(staffRequestModel.Password),
                    RoleId   = staffRequestModel.RoleId
                });
                result = this._staffRepository.Add(new Staff
                {
                    FirstName   = staffRequestModel.FirstName,
                    LastName    = staffRequestModel.LastName,
                    Sex         = staffRequestModel.Sex,
                    BirthDate   = staffRequestModel.BirthDate,
                    PhoneNumber = staffRequestModel.PhoneNumber,
                    Address     = staffRequestModel.Address,
                    CreatedDate = DateTime.Now,
                    UpdatedDate = DateTime.Now,
                    Lock        = true,
                    CreatedUser = username,
                    UserId      = user.UserId
                });
            }
            this._staffRepository.Commit();
            staffRequestModel.Id = result.Id;
            return(staffRequestModel);
        }
        public UserLoginResponseModel Login(string username, string password)
        {
            var appuser = this._userRepository.GetSingle(s => s.UserName == username, new string[] { "AppRole" });

            if (appuser == null || !IdentytiHelper.VerifyHashedPassword(appuser.PassWord, password) || appuser.Lock == true)
            {
                return(null);
            }
            var result = new UserLoginResponseModel()
            {
                UserId      = appuser.UserId,
                Username    = appuser.UserName,
                ProviderKey = Guid.NewGuid().ToString(),
                Roles       = new SelectResponseModel
                {
                    id   = appuser.AppRole.Id.ToString(),
                    text = appuser.AppRole.Name
                }
            };

            return(result);
        }