public async Task <UserLoginResponse> LoginUser(UserLoginRequest user) { UserLoginResponse userFromDatabase = null; user.Errors = _validations.ValidateUserLogin(user); if (user.Errors.Count != 0) { return(new UserLoginResponse() { Success = false, Errors = user.Errors }); } if (!await _userRepository.UserExists(user.Login)) { user.Errors.Add("User does not exist!"); return(new UserLoginResponse() { Success = false, Errors = user.Errors }); } userFromDatabase = await _userRepository.LoginUser(new User() { Login = user.Login, Password = GetPasswordHashSalt(Encoding.UTF8.GetBytes(user.Password)), }); if (userFromDatabase == null) { user.Errors.Add("Username and password does not match!"); return(new UserLoginResponse() { Success = false, Errors = user.Errors }); } // var userRole = GetUserByLogin(user.Login).Result.Role; userFromDatabase.Token = GetAccessToken(await GetUserByLogin(user.Login)); return(userFromDatabase); }