public Task <SearchResourceSetResult> Execute(SearchResourceSetParameter parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } return(_resourceSetRepository.Search(parameter)); }
public async Task <SearchResourceSetResult> Search(SearchResourceSetParameter parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } IQueryable <Models.ResourceSet> resourceSet = _context.ResourceSets .Include(r => r.ResourceSetPolicies).ThenInclude(r => r.Policy).ThenInclude(r => r.Claims) .Include(r => r.ResourceSetPolicies).ThenInclude(r => r.Policy).ThenInclude(r => r.Scopes) .Include(r => r.ResourceSetPolicies).ThenInclude(r => r.Policy).ThenInclude(r => r.Clients) .Include(r => r.Scopes); if (parameter.Ids != null && parameter.Ids.Any()) { resourceSet = resourceSet.Where(r => parameter.Ids.Contains(r.Id)); } if (parameter.Names != null && parameter.Names.Any()) { resourceSet = resourceSet.Where(r => parameter.Names.Any(n => r.Name.Contains(n))); } if (parameter.Types != null && parameter.Types.Any()) { resourceSet = resourceSet.Where(r => parameter.Types.Any(t => r.Type.Contains(t))); } if (parameter.Owners != null && parameter.Owners.Any()) { resourceSet = resourceSet.Where(r => parameter.Owners.Contains(r.Owner)); } if (parameter.Subjects != null && parameter.Subjects.Any()) { resourceSet = resourceSet.Where(r => r.ResourceSetPolicies.Any(p => p.Policy != null && p.Policy.Claims != null && p.Policy.Claims.Any(c => c.Key == "sub" && parameter.Subjects.Contains(c.Value)))); } var nbResult = await resourceSet.CountAsync().ConfigureAwait(false); resourceSet = resourceSet.OrderBy(c => c.Id); if (parameter.IsPagingEnabled) { resourceSet = resourceSet.Skip(parameter.StartIndex).Take(parameter.Count); } return(new SearchResourceSetResult { Content = await resourceSet.Select(c => c.ToDomain()).ToListAsync().ConfigureAwait(false), StartIndex = parameter.StartIndex, TotalResults = nbResult }); }
public Task <SearchResourceSetResult> Search(SearchResourceSetParameter parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } IEnumerable <ResourceSet> result = Resources.Select(r => r.Copy()).Select(r => Enrich(r)).ToList(); if (parameter.Ids != null && parameter.Ids.Any()) { result = result.Where(r => parameter.Ids.Contains(r.Id)); } if (parameter.Names != null && parameter.Names.Any()) { result = result.Where(r => parameter.Names.Any(n => r.Name.Contains(n))); } if (parameter.Types != null && parameter.Types.Any()) { result = result.Where(r => parameter.Types.Any(t => r.Type.Contains(t))); } if (parameter.Owners != null && parameter.Owners.Any()) { result = result.Where(r => parameter.Owners.Contains(r.Owner)); } if (parameter.Subjects != null && parameter.Subjects.Any()) { result = result.Where(r => r.AuthPolicies.Any(p => p.Claims != null && p.Claims.Any(c => c.Type == "sub" && parameter.Subjects.Contains(c.Value)))); } var nbResult = result.Count(); result = result.OrderBy(c => c.Id); if (parameter.IsPagingEnabled) { result = result.Skip(parameter.StartIndex).Take(parameter.Count); } var content = result.ToList(); return(Task.FromResult(new SearchResourceSetResult { Content = content, StartIndex = parameter.StartIndex, TotalResults = nbResult })); }
public Task <SearchResourceSetResult> Execute(SearchCurrentUserResourceSetParameter searchCurrentUserResourceSetParameter) { if (searchCurrentUserResourceSetParameter == null) { throw new ArgumentNullException(nameof(searchCurrentUserResourceSetParameter)); } var parameter = new SearchResourceSetParameter { Owners = new[] { searchCurrentUserResourceSetParameter.Owner }, StartIndex = searchCurrentUserResourceSetParameter.StartIndex, Count = searchCurrentUserResourceSetParameter.Count }; return(_resourceSetRepository.Search(parameter)); }
public Task <SearchResourceSetResult> Search(SearchResourceSetParameter parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } IEnumerable <ResourceSet> result = _resources; if (parameter.Ids != null && parameter.Ids.Any()) { result = result.Where(r => parameter.Ids.Contains(r.Id)); } if (parameter.Names != null && parameter.Names.Any()) { result = result.Where(r => parameter.Names.Any(n => r.Name.Contains(n))); } if (parameter.Types != null && parameter.Types.Any()) { result = result.Where(r => parameter.Types.Any(t => r.Type.Contains(t))); } var nbResult = result.Count(); result = result.OrderBy(c => c.Id); if (parameter.IsPagingEnabled) { result = result.Skip(parameter.StartIndex).Take(parameter.Count); } return(Task.FromResult(new SearchResourceSetResult { Content = result.Select(r => r.Copy()), StartIndex = parameter.StartIndex, TotalResults = nbResult })); }
public Task <SearchResourceSetResult> Search(SearchResourceSetParameter parameter) { return(_searchResourceSetOperation.Execute(parameter)); }