public DTO.SearchResult Search(bool isRKAdmin, Guid clientId, string name = null, Guid?application_code = null, int?skip = null, int?take = null) { DTO.SearchFilterResource searchFilter = new DTO.SearchFilterResource(); if (!name.IsNullOrWhiteSpace()) { searchFilter.Name = name; } if (skip.HasValue) { searchFilter.Skip = skip; } if (take.HasValue) { searchFilter.Take = take; } if (isRKAdmin) { searchFilter.ApplicationCode = application_code; } else { var appStore = appStoreRepository.GetByClientId(clientId); searchFilter.ApplicationCode = appStore.Application.Code; } var result = repository.Search(searchFilter); var resources = result.Results.Select(r => new DTO.Resource(r, includeApp: true)); return(new DTO.SearchResult(resources).SetResult <Resource>(result)); }
public VO.SearchResult <Resource> Search(DTO.SearchFilterResource filter) { IQueryable <Resource> result = Collection.Include("Application").AsQueryable(); if (!filter.Name.IsNullOrWhiteSpace()) { result = result.Where(f => f.Name.ToLower().Contains(filter.Name.ToLower())); } if (!filter.ApplicationCode.IsNull() && !filter.ApplicationCode.IsEmpty()) { result = result.Where(f => f.ApplicationCode == filter.ApplicationCode); } result = result.OrderBy(i => i.SaveDate); var count = result.Count(); result = result.Skip((filter.Skip.Value) * filter.Take.Value); result = result.Take(filter.Take.Value); return(new VO.SearchResult <Resource>(result.ToList(), filter, count)); }