public async Task <IEnumerable <AppUser> > GetUsersFilteredSortedAsync(FilterSortingParams filterSortingParams) { var users = _context.Users.AsQueryable(); if (!string.IsNullOrEmpty(filterSortingParams.SearchByEmail)) { users = users.Where(x => EF.Functions.Like(x.Email.ToLower(), "%" + filterSortingParams.SearchByEmail.ToLower() + "%")); } if (!string.IsNullOrEmpty(filterSortingParams.SearchByPhone)) { users = users.Where(x => EF.Functions.Like(x.Phone.ToLower(), "%" + filterSortingParams.SearchByPhone.ToLower() + "%")); } if (!string.IsNullOrEmpty(filterSortingParams.SortBy)) { users = users.Sort(filterSortingParams.SortBy); } var latestUsers = await users.ToListAsync(); return(latestUsers); }
public async Task <ActionResult <IEnumerable <UserDto> > > GetUsers(FilterSortingParams sortingParams) { try { var users = await _unitOfWork.UserRepository.GetUsersFilteredSortedAsync(sortingParams); var result = _mapper.Map <IEnumerable <UserDto> >(users); if (users.Count() > 0) { return(Ok(result)); } return(NotFound()); } catch (Exception ex) { throw (ex); } }