示例#1
0
        /// <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());
        }
示例#2
0
        /// <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));
        }