public async Task<IEnumerable<Claim>> GetProfileDataAsync(ProfileDataRequest request)
        {
            var user = await directoryContext.FindUserByNameAsync(request.Subject.Identity.Name);

            return GetClaimsForResult(user);
        }
        /// <summary>
        /// Go and get all claims for this user. 
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task<IEnumerable<Claim>> GetProfileDataAsync(ProfileDataRequest request)
        {
            var subject = request.Subject;
            var requestedClaimTypes = request.RequestedClaimTypes;

            if (subject == null) throw new ArgumentNullException("subject");

            var acct = await manager.FindByIdAsync(subject.FindFirst(Core.Constants.ClaimTypes.Subject).Value);
            if (acct == null)
            {
                throw new ArgumentException("Invalid subject identifier");
            }

            var claims = await GetClaimsFromAccount(acct);
            if (requestedClaimTypes != null && requestedClaimTypes.Any())
            {
                claims = claims.Where(x => requestedClaimTypes.Contains(x.Type));
            }

            return claims;
        }