public virtual async Task <IEnumerable <TEntity> > GetSorted(GetUsersQueryParams queryParams) { if (queryParams.Order == "asc") { return(await IncludedEntities.Skip(queryParams.Skip).Take(queryParams.Take).OrderBy(x => x.Id).ToListAsync()); } return(await IncludedEntities.Skip(queryParams.Skip).Take(queryParams.Take).OrderByDescending(x => x.Id).ToListAsync()); }
public async Task <IActionResult> GetLimitedUsers([FromQuery] GetUsersQueryParams param) { if (String.IsNullOrEmpty(param.SortBy)) { return(Ok(await _userService.GetLimitedUsers(param.Skip, param.Take))); } return(Ok(await _userService.GetSortedUsers(param))); }
public override async Task <IEnumerable <Person> > GetSorted(GetUsersQueryParams queryParams) { if (queryParams.Order == OrderType.asc.ToString()) { return(await IncludedEntities.Skip(queryParams.Skip).Take(queryParams.Take).OrderBy(queryParams.SortBy).ToListAsync()); } return(await IncludedEntities.Skip(queryParams.Skip).Take(queryParams.Take).OrderByDescending(queryParams.SortBy).ToListAsync()); }
public async Task <IEnumerable <PersonDTO> > GetSortedUsers(GetUsersQueryParams queryParams) { var sortingProperty = queryParams.SortBy; var propertyDoesNotExist = typeof(Person).GetProperty(sortingProperty, BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase) is null; if (propertyDoesNotExist) { throw new Exception("property does not exist on type"); } var sortedUsers = await _unitOfWork.UserRepository.GetSorted(queryParams); var users = _mapper.Map <IEnumerable <PersonDTO> >(sortedUsers); return(users); }