public void HandleLoginQuery(LoginRequest request, Action <UserLoginQueryResult> OnSuccess, Action <string> OnFailure) { _userRepo.LoadUser(request.Username, user => _security.ValidatePassword(request.Password, user.PasswordHash, () => { var(status, permissions) = _permissionsRepo.LoadPermissions(user.UserRole); if (status is Success) { OnSuccess(new UserLoginQueryResult(user, permissions.ToList())); } else { OnFailure("Could not load permissions"); } }, OnFailure), OnFailure); }
public (Status, UserLoginQueryResult) HandleLoginQuery(LoginRequest request) { var(status, user) = _userRepo.LoadUser(request.Username); if (status is Failure) { return(status, null); } status = _security.ValidatePassword(request.Password, user.PasswordHash); if (status is Failure) { return(status, null); } var(statusP, permissions) = _permissionsRepo.LoadPermissions(user.UserRole); if (statusP is Failure) { return(statusP, null); } return(new Success(), new UserLoginQueryResult(user, permissions.ToList())); }