public async Task <PhonebookResponseModel> GetsAsync(PhonebookRequestModel request) { //Filtering var res = _db.Phonebook.Where(f => (f.FirstName == request.FirstName || request.FirstName == null) && (f.City == request.City || request.City == null) && (f.ZipCode == request.ZipCode || request.ZipCode == null) && (f.PhoneNumber == request.PhoneNumber || request.PhoneNumber == null)); //Sorting if (request.SortOrder == "firstName") { res = res.OrderBy(o => o.FirstName); } if (request.SortOrder == "firstName_Desc") { res = res.OrderByDescending(o => o.FirstName); } //Paging var paggingRes = res.ToPagedList(request.PageNumber, request.PageSize); return(new PhonebookResponseModel { Records = paggingRes.ToList(), TotalItems = paggingRes.TotalItemCount, CurrentPage = paggingRes.PageNumber, PageSize = paggingRes.Count, TotalPages = paggingRes.PageCount }); }
public async Task <ActionResult <PhonebookResponseModel> > Gets(string sortOrder = null, string firstName = null, string city = null, string zipCode = null, string phoneNumber = null, int pageSize = 5, int pageNumber = 1) { var requestModel = new PhonebookRequestModel { SortOrder = sortOrder, FirstName = firstName, City = city, ZipCode = zipCode, PhoneNumber = phoneNumber, PageSize = pageSize, PageNumber = pageNumber }; return(await _phonebookRepository.GetsAsync(requestModel)); }