/// <summary> /// Finds User by given criteria /// </summary> /// <param name="criteria"> The criteria. </param> /// <returns> The <see cref="User"/>. </returns> public Task <User> ExecuteAsync(FindByLoginInfoCriteria criteria) { var query = _unitOfWork.Context.LoginProviders .Where(l => l.ProviderKey == criteria.ProviderKey && l.LoginProvider == criteria.LoginProvider) .Select(l => l.User); return(query.Select(GetUserMapping()).FirstOrDefaultAsync()); }
/// <summary> /// Retrieves user by given Login Information /// </summary> /// <param name="login">User login information</param> /// <returns> Found User </returns> public async Task <UserModel> FindAsync(UserLoginInfo login) { var criteria = new FindByLoginInfoCriteria { ProviderKey = login.ProviderKey, LoginProvider = login.LoginProvider }; var user = await _getByLoginInfoQuery.ExecuteAsync(criteria); return(CreateUserModel(user)); }