public async Task <ActionResult> LogUserIn([FromBody] UserLoginDTO userInfo) { try { UserAuthenticateResponseDTO result = await _userService.LogUserIn(userInfo); if (result == null) { return(BadRequest(new JsonResult("Wrong email or password"))); } return(Ok(result)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult> AddUserAccount([FromBody] UserRegisterDTO userInfo) { try { UserAuthenticateResponseDTO result = await _userService.AddUserAccount(userInfo); if (result == null) { return(BadRequest(new JsonResult("The desired username is not available."))); } return(Ok(result)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <UserAuthenticateResponseDTO> LogUserIn(UserLoginDTO userInfo) { using (_unitOfWork) { User user = await _unitOfWork.UserRepository.GetUserByUsername(userInfo.Username); if (user == null) { return(null); } if (!PasswordEncryptionService.IsPasswordCorrect(user.Password, userInfo.Password, _appSettings.SaltLength)) { return(null); } UserAuthenticateResponseDTO returnUser = _mapper.Map <User, UserAuthenticateResponseDTO>(user); returnUser.Token = _tokenManager.GenerateToken(user.UserId); returnUser.UnseenNotifications = _unitOfWork.UserRepository.GetUnseenNotificationNumber(user.UserId); return(returnUser); } }
public async Task <UserAuthenticateResponseDTO> AddUserAccount(UserRegisterDTO userInfo) { using (_unitOfWork) { if (_unitOfWork.UserRepository.UsernameTaken(userInfo.Username)) { return(null); } userInfo.Password = PasswordEncryptionService.EncryptPassword(userInfo.Password, _appSettings.SaltLength); User newUser = _mapper.Map <UserRegisterDTO, User>(userInfo); await _unitOfWork.UserRepository.Create(newUser); await _unitOfWork.Save(); UserAuthenticateResponseDTO returnUser = _mapper.Map <User, UserAuthenticateResponseDTO>(newUser); returnUser.Token = _tokenManager.GenerateToken(newUser.UserId); returnUser.UnseenNotifications = _unitOfWork.UserRepository.GetUnseenNotificationNumber(newUser.UserId); return(returnUser); } }