Esempio n. 1
0
        public Task <IEnumerable <ResourceOwnerProfile> > Search(SearchProfileParameter parameter)
        {
            if (parameter == null)
            {
                throw new ArgumentNullException(nameof(parameter));
            }


            IEnumerable <ResourceOwnerProfile> result = _profiles;

            if (parameter.ResourceOwnerIds != null && parameter.ResourceOwnerIds.Any())
            {
                result = result.Where(p => parameter.ResourceOwnerIds.Contains(p.ResourceOwnerId));
            }

            if (parameter.Issuers != null && parameter.Issuers.Any())
            {
                result = result.Where(p => parameter.Issuers.Contains(p.Issuer));
            }

            return(Task.FromResult(result.Select(r => r.Copy())));
        }
        /// <summary>
        /// Search the profiles.
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public async Task <IEnumerable <ResourceOwnerProfile> > Search(SearchProfileParameter parameter)
        {
            if (parameter == null)
            {
                throw new ArgumentNullException(nameof(parameter));
            }

            IQueryable <Profile> profiles = _context.Profiles;

            if (parameter.ResourceOwnerIds != null && parameter.ResourceOwnerIds.Any())
            {
                profiles = profiles.Where(p => parameter.ResourceOwnerIds.Contains(p.ResourceOwnerId));
            }

            if (parameter.Issuers != null && parameter.Issuers.Any())
            {
                profiles = profiles.Where(p => parameter.Issuers.Contains(p.Issuer));
            }

            var result = await profiles.ToListAsync().ConfigureAwait(false);

            return(result.Select(p => p.ToDomain()));
        }