public DTO.SearchResult Search(Guid storeCode, string name, int?skip = null, int?take = null) { if (storeCode.IsEmpty() && name.IsNullOrWhiteSpace()) { throw new ArgumentException("É necessário informar a loja ou nome do grupo"); } DTO.SearchFilterRole searchFilter = new DTO.SearchFilterRole(); if (!name.IsNullOrWhiteSpace()) { searchFilter.Name = name; } if (!storeCode.IsEmpty()) { searchFilter.StoreCode = storeCode; } if (skip.HasValue) { searchFilter.Skip = skip; } if (take.HasValue) { searchFilter.Take = take; } var result = roleRepository.Search(searchFilter); var roles = result.Results.Select(p => new DTO.Role(p)); return(new DTO.SearchResult(roles).SetResult <Role>(result)); }
public VO.SearchResult <Role> Search(DTO.SearchFilterRole filter) { IQueryable <Role> result = Collection.Include(x => x.Store).AsQueryable(); if (!filter.StoreCode.IsEmpty()) { result = result.Where(r => r.StoreCode == filter.StoreCode); } if (!filter.Name.IsNullOrWhiteSpace()) { result = result.Where(n => n.Name.ToLower().Contains(filter.Name.ToLower())); } 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 <Role>(result.ToList(), filter, count)); }