public LoginResponseDto Login(LoginDto dto)
        {
            var result = new LoginResponseDto();

            dto.Password = FunctionCommon.GetMd5(FunctionCommon.GetSimpleMd5(dto.Password));

            var accountFromDb = db.Accounts.FirstOrDefault(x => x.UserName == dto.UserName && x.Password == dto.Password && !x.DelFlag);

            if (accountFromDb == null)
            {
                return null;
            }

            var isStudent = db.AccountGroups.FirstOrDefault(x => !x.DelFlag && x.Name.ToLower().Equals("Sinh viên")).Id == accountFromDb.AccountGroupId;

            var accessToken = JwtAuthenticationExtensions.CreateToken(accountFromDb, isStudent);

            result.AccessToken = accessToken;

            result.FirstName = accountFromDb.UserInfo.FirstName;

            result.LastName = accountFromDb.UserInfo.LastName;

            result.Avatar = accountFromDb.Avatar;

            result.UserName = accountFromDb.UserName;

            result.IsStudent = isStudent;

            return result;
        }
        public IHttpActionResult Login([FromBody] LoginDto dto)
        {
            if (dto == null)
            {
                return(BadRequest());
            }

            var result = authenticationService.Login(dto);

            if (result == null)
            {
                return(CreateUnauthorizedResponse("Invalid username or password"));
            }

            var output = Request.CreateResponse(HttpStatusCode.OK, result);

            var accessToken = JwtAuthenticationExtensions.CreateToken(result);

            result.AccessToken = accessToken;

            output.Headers.Add("Authorization", accessToken);

            return(ResponseMessage(output));
        }