public async Task <PagedAndSortedList <User> > ListAllAsync(int pageNumber, int pageSize, string sort)
        {
            IQueryable <User> users = _context.Users;

            users = sort.ToLowerInvariant() == "desc"
                ? users.OrderByDescending(user => user.Username)
                : users.OrderBy(user => user.Username);
            return(await PagedAndSortedList <User> .ToPagedListAsync(users, pageNumber, pageSize,
                                                                     sort.ToLowerInvariant(), "username"));
        }
        public async Task <PagedAndSortedList <PostalCode> > SearchAsync(int pageNumber, int pageSize, string sort,
                                                                         string code,
                                                                         string countryIso)
        {
            var postalCodes = _context.PostalCodes.Include(pc => pc.PostalCodeCities)
                              .ThenInclude(pcc => pcc.City).Where(pc =>
                                                                  (string.IsNullOrEmpty(code) || pc.Code.StartsWith(code)) &&
                                                                  (string.IsNullOrEmpty(countryIso) || pc.CountryIso == countryIso));

            postalCodes = sort.ToLowerInvariant() == "desc"
                ? postalCodes.OrderByDescending(postalCode => postalCode.Code)
                : postalCodes.OrderBy(postalCode => postalCode.Code);
            return(await PagedAndSortedList <PostalCode> .ToPagedListAsync(postalCodes, pageNumber, pageSize,
                                                                           sort.ToLowerInvariant(), "code"));
        }