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
            });
        }
Пример #2
0
        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));
        }