public coreModel.SearchResult SearchStores(coreModel.SearchCriteria criteria) { var retVal = new coreModel.SearchResult(); using (var repository = _repositoryFactory()) { var query = repository.Stores; if (!string.IsNullOrEmpty(criteria.Keyword)) { query = query.Where(x => x.Name.Contains(criteria.Keyword) || x.Id.Contains(criteria.Keyword)); } if (!criteria.StoreIds.IsNullOrEmpty()) { query = query.Where(x => criteria.StoreIds.Contains(x.Id)); } var sortInfos = criteria.SortInfos; if (sortInfos.IsNullOrEmpty()) { sortInfos = new[] { new SortInfo { SortColumn = "Name" } }; } query = query.OrderBySortInfos(sortInfos); retVal.TotalCount = query.Count(); var storeIds = query.Skip(criteria.Skip) .Take(criteria.Take) .Select(x => x.Id) .ToArray(); retVal.Stores = GetByIds(storeIds).AsQueryable().OrderBySortInfos(sortInfos).ToList(); } return(retVal); }
public coreModel.SearchResult SearchStores(coreModel.SearchCriteria criteria) { var retVal = new coreModel.SearchResult(); using (var repository = _repositoryFactory()) { var query = repository.Stores; if(!string.IsNullOrEmpty(criteria.Keyword)) { query = query.Where(x => x.Name.Contains(criteria.Keyword) || x.Id.Contains(criteria.Keyword)); } if(!criteria.StoreIds.IsNullOrEmpty()) { query = query.Where(x => criteria.StoreIds.Contains(x.Id)); } var sortInfos = criteria.SortInfos; if (sortInfos.IsNullOrEmpty()) { sortInfos = new[] { new SortInfo { SortColumn = "Name" } }; } query = query.OrderBySortInfos(sortInfos); retVal.TotalCount = query.Count(); var storeIds = query.Skip(criteria.Skip) .Take(criteria.Take) .Select(x => x.Id) .ToArray(); retVal.Stores = GetByIds(storeIds).AsQueryable().OrderBySortInfos(sortInfos).ToList(); } return retVal; }