public async Task <PagedList <User> > GetAllUser(QueryParametersForGetAllUsers parameters) { IQueryable <User> query = _context.Users; if (parameters.Id != null) { query = query.Where(user => user.Id == parameters.Id); } if (parameters.Name != null) { query = query.Where(user => user.Name.ToLower().Contains(parameters.Name.ToLower())); } if (parameters.Email != null) { query = query.Where(user => user.Email.ToLower().Contains(parameters.Email.ToLower())); } if (parameters.Gender != null) { query = query.Where(user => user.Gender.ToLower() == parameters.Gender.ToLower()); } if (parameters.InstitutionId != null) { query = query.Where(user => user.Id == parameters.Id); } if (parameters.CategoryId != null) { query = query.Where(user => user.CategoryId == parameters.CategoryId); } if (parameters.Role != null) { query = query.Where(user => user.Role.ToLower().Contains(parameters.Role.ToLower())); } if (parameters.MobileNumber != null) { query = query.Where(user => user.MobileNumber.Contains(parameters.MobileNumber)); } if (parameters.IsPaid != null) { query = query.Where(user => user.IsPaid == parameters.IsPaid); } if (parameters.ReferrerAmbassadorId != null) { query = query.Where(user => user.ReferrerAmbassadorId == parameters.ReferrerAmbassadorId); } switch (parameters.SortOrder) { case "desc": query = query.OrderByDescending(on => on.Name); break; default: query = query.OrderBy(on => on.Name); break; } var users = await PagedList <User> .ToPagedList(query, parameters.PageNumber, parameters.PageSize); return(users); }
public async Task <ActionResult <OkResponseWithPagination <User> > > GetAllUsers([FromQuery] QueryParametersForGetAllUsers parameters) { var users = await _profileRepository.GetAllUser(parameters); var metadata = new Pagination() { TotalCount = users.TotalCount, PageSize = users.PageSize, CurrentPage = users.CurrentPage, TotalPages = users.TotalPages, HasNext = users.HasNext, HasPrevious = users.HasPrevious }; return(Ok(new OkResponseWithPagination <User>() { Data = users, Pagination = metadata })); }