public SearchResponse <UserResponseModel> SearchForUser(SearchUserRequestModel model, int page, int size) { var allUsers = this._userRepo.GetAll(); if (!string.IsNullOrWhiteSpace(model.Email)) { allUsers = allUsers.Where(x => x.Email.ToLower().Contains(model.Email.Trim().ToLower())); } if (!string.IsNullOrWhiteSpace(model.Name)) { allUsers = allUsers.Where(x => x.Name.ToLower().Contains(model.Name.Trim().ToLower())); } if (model.IsAdmin.HasValue) { allUsers = allUsers.Where(x => x.IsAdmin == model.IsAdmin.Value); } return(new SearchResponse <UserResponseModel> { Page = page, TotalCount = allUsers.Count(), Result = allUsers.ToList().Skip((page - 1) * size).Take(size).Select(x => x.ToModel()) }); }
public IActionResult AllUsers([FromQuery] SearchUserRequestModel model, int page = 1, int size = 10) { try { page = page > 0 ? page : 1; size = size > 0 ? size : 10; var users = this._userService.SearchForUser(model, page, size); return(Ok(users)); } catch (ArgumentException ex) { return(BadRequest(ex.Message)); } catch (Exception ex) { // log exception return(StatusCode(500, Constants.ServerErrorMessageText)); } }