public IEnumerable <Question> Search(SearchPaging item) { try { var result = context.Questions.Where(s => s.Content.Contains(item.SearchString)).ToList(); var size = 10; var maxSize = result.Count(); if (item.PageSize <= 0) { size = maxSize < 10 ? maxSize : 10; } else { size = maxSize < item.PageSize ? maxSize : item.PageSize; } var index = item.PageIndex <= 0 ? item.PageIndex = 1 : item.PageIndex; var start = (index - 1) * size; var end = index * size - 1; return(result.GetRange(start, end)); } catch (Exception e) { throw e; } }
// Search when Search String is not null public async Task <PagedList <User> > ReturnUsers(SearchPaging props) { var returned = (await SearchUser(props)).OrderBy(x => x.Id).ToList(); var retList = PagedList <User> .ToPagedList(returned, props.PageNumber, props.PageSize); return(retList); }
public static FindOptions <TDocument, TDocument> CreateFindOptions <TDocument, TFilter>( this SearchPaging <TFilter> paging, SortDefinition <TDocument> sort) { var findOptions = new FindOptions <TDocument>(); var offset = (paging.Page - 1) * paging.Size; findOptions.Skip = offset; findOptions.Limit = paging.Size; findOptions.Sort = sort; return(findOptions); }
public SearchResult <BankTransaction> Search(SearchPaging <BankTransactionFilters> bankTransactionFilters) { var filters = this.SearchBankTransactionFilterBuilder(bankTransactionFilters.Filters); var sort = Builders <BankTransaction> .Sort.Descending(r => r.TransactionDate); var options = bankTransactionFilters.CreateFindOptions(sort); var documents = this.MongoCollection.FindAsync(filters, options) .GetAwaiter().GetResult().ToList(); var count = this.MongoCollection.CountDocuments(filters); return(new SearchResult <BankTransaction> { Count = count, Documents = documents }); }
// Search when search string is null public async Task <PagedList <User> > ReturnAllUsers(SearchPaging props) { IQueryable <User> usersQ = Enumerable.Empty <User>().AsQueryable(); for (int i = 0; i < props.Role.Length; i++) { switch (props.Role[i]) { case "Admin": var admins = await _context.Admins.Include(x => x.Person).Where( (x) => x.Status.CompareTo(props.Status) == 0) .OrderBy(x => x.Id).ToListAsync(); usersQ = usersQ.Concat(admins); break; case "Member": var members = await _context.Members.Include(x => x.Person).Where( (x) => x.Status.CompareTo(props.Status) == 0) .OrderBy(x => x.Id).ToListAsync(); usersQ = usersQ.Concat(members); break; default: var users = await _context.Users.Include(x => x.Person).Where( (x) => x.Status.CompareTo(props.Status) == 0) .OrderBy(x => x.Id).ToListAsync(); usersQ = usersQ.Concat(users); break; } } var returned = usersQ.ToList(); var retList = PagedList <User> .ToPagedList(returned, props.PageNumber, props.PageSize); return(retList); }
public string ExportToCsv(BankTransactionFilters bankTransactionFilters) { var filters = new SearchPaging <BankTransactionFilters> { Page = 1, Size = 50, Filters = bankTransactionFilters }; var bankTransactions = new List <BankTransaction>(); var hasNext = false; do { var result = this.BankTransactionRepository.Search(filters); bankTransactions.AddRange(result.Documents); hasNext = (result.Documents.Count == filters.Size); filters.Page++; }while (hasNext); return(this.CsvParser.Convert(bankTransactions)); }
private async Task <IQueryable <User> > SearchUser(SearchPaging props) { IQueryable <User> users = Enumerable.Empty <User>().AsQueryable(); for (int i = 0; i < props.Role.Length; i++) { switch (props.Role[i]) { case "Admin": var a = await _context.Admins.Include(x => x.Person).Where(x => x.Status == props.Status && (x.SearchString.Contains(props.SearchString.ToUpper()))).ToListAsync(); users = users.Concat(a); break; case "Member": var m = await _context.Members.Include(x => x.Person).Where(x => x.Status == props.Status && (x.SearchString.Contains(props.SearchString.ToUpper()))).ToListAsync(); users = users.Concat(m); break; default: var u = await _context.Users.Include(x => x.Person).Where(x => x.Status == props.Status && (x.SearchString.Contains(props.SearchString.ToUpper()))).ToListAsync(); users = users.Concat(u); break; } } return(users); }
public SearchResult <BankTransaction> Search(SearchPaging <BankTransactionFilters> bankTransactionFilters) { return(this.BankTransactionRepository.Search(bankTransactionFilters)); }
public async Task <IActionResult> ReturnUsers([FromQuery] SearchPaging props) { //List<SearchProps> finalReturn = new List<SearchProps>(); if (!string.IsNullOrEmpty(props.SearchString)) { var userList = await _uService.ReturnUsers(props); var returnList = _mapper.Map <List <SearchProps> >(userList); for (int i = 0; i < returnList.Count; i++) { returnList.ElementAt(i).Role = userList.ElementAt(i).GetType().Name; } // for (int j = 0; j < props.Role.Length; j++) // { // for (int i = 0; i < returnList.Count; i++) // { // if (returnList.ElementAt(i).Role.CompareTo(props.Role[j]) == 0) // { // finalReturn.Add(returnList.ElementAt(i)); // } // } // } var data = new{ userList.TotalCount, userList.PageSize, userList.CurrentPage, userList.TotalPages, userList.HasNext, userList.HasPrevious }; var users = new { returnList, data, }; return(Ok(users)); } else { var userList = await _uService.ReturnAllUsers(props); var returnList = _mapper.Map <List <SearchProps> >(userList); for (int i = 0; i < returnList.Count; i++) { returnList.ElementAt(i).Role = userList.ElementAt(i).GetType().Name.ToString(); } // for (int j = 0; j < props.Role.Length; j++) // { // // // for (int i = 0; i < returnList.Count; i++) // { // if (returnList.ElementAt(i).Role.CompareTo(props.Role[j]) == 0) // { // finalReturn.Add(returnList.ElementAt(i)); // } // } // } var data = new { userList.TotalCount, userList.PageSize, userList.CurrentPage, userList.TotalPages, userList.HasNext, userList.HasPrevious }; var users = new { returnList, data, }; return(Ok(users)); } }
public IEnumerable <Question> Search(SearchPaging item) { return(repository.Search(item)); }
public virtual async Task PagingFilterChange(IPaging paging) { SearchPaging.AutoMap(paging); await Search(); }