public IActionResult GetAllUsers([FromQuery] SearchPageParameter searchParam) { try { int totalRecords = 0; var users = mapper.Map <IList <UserDto> >(userService.GetAll(searchParam, ref totalRecords)); return(Ok(new { users, totalRecords })); } catch (AppException ex) { return(BadRequest(ex.Message)); } }
public IEnumerable <UserOrder> GetAll(SearchPageParameter searchParam, ref int totalResults) { IQueryable <UserOrder> allResults = _context.UserOrder .Include(o => o.Address) .Include(o => o.User) .AsNoTracking(); if (string.IsNullOrEmpty(searchParam.Search)) { allResults = allResults .Where(u => !u.RemovedDate.HasValue); } else { int orderId = 0; var search = searchParam.Search.ToUpper().Trim(); var searchParams = search.Split(' '); var firstName = searchParams.Count() > 0 ? searchParams[0] : search; var lastName = searchParams.Count() > 1 ? searchParams[1] : search; if (int.TryParse(searchParam.Search, out orderId)) { allResults = allResults.Where(u => u.UserOrderId == orderId); } else if (searchParams.Count() > 1) { allResults = allResults.Where(u => u.User.FirstName.ToUpper().Contains(firstName) && u.User.LastName.ToUpper().Contains(lastName)); } else { allResults = allResults.Where(u => u.User.FirstName.ToUpper().Contains(firstName) || u.User.LastName.ToUpper().Contains(lastName)); } } totalResults = allResults.Count(); if ((searchParam.PageNumber - 1) * searchParam.MaxRowsPerPage > totalResults) { searchParam.PageNumber = (totalResults / searchParam.MaxRowsPerPage) - 1; searchParam.PageNumber = searchParam.PageNumber <= 0 ? 1 : searchParam.PageNumber; } return(allResults.Skip((searchParam.PageNumber - 1) * searchParam.MaxRowsPerPage).Take(searchParam.MaxRowsPerPage)); }