Пример #1
0
 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));
     }
 }
Пример #2
0
        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));
        }