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())); }