Cześć. Chciałbym pobrać dane z bazy po pewnych kryteriach sortowania. I mam taki problem. Jak moge zrobić że jeżeli kryteria są puste to po prostu pobierze wszystko. Jasne oczywiste jest że można zrobić na ifa ale czy jest inny sposoób ?
Tak to teraz wygląda i macie mozę jakieś dobre praktyki aby polepszyć ten kod ?

        public async Task<PagedResult<Tenure>> GetAllActiveAsync(int? page, Query query)
        {
            var tenures = db.Tenures.Where(x => x.Name.ToLower().Contains(query.Name.ToLower()) || x.City.ToLower().Contains(query.City.ToLower()));
            page = page - 1;
            var pageSize = 10;
            int startPage = 1;
            int endPage = 5;
            int totalItems = tenures.Where(x => x.IsActive == true && x.Company.IsActive == true && x.IsPremium == false).Count();
            int totalElements = db.Tenures.Where(x => x.IsActive == true && x.Company.IsActive == true).Count();
            int totalPages = (int)Math.Ceiling((decimal)totalItems / pageSize);
            int currentPage = page ?? 1;

            if (currentPage >= 5 && currentPage <= (totalPages - 4))
            {
                startPage = currentPage - 1;
                endPage = currentPage + 1;
            }
            else if (currentPage > (totalPages - 4))
            {
                startPage = totalPages - 4;
                endPage = totalPages;
            }

            if (startPage <= 0)
            {
                startPage = 1;
            }
            if (endPage >= totalPages)
            {
                endPage = totalPages;
            }

            var result = await tenures.Where(x => x.IsActive == true && x.Company.IsActive == true && x.IsPremium == false)
                .Include(x => x.Company)
                .OrderByDescending(x => x.CreatedAt)
                .Skip((int)currentPage * pageSize)
                .Take(pageSize)
				.AsNoTracking()
                .ToListAsync();


            return new PagedResult<Tenure>
            {
                Results = result,
                PageSize = pageSize,
                TotalCount = totalPages,
                StartPage = startPage,
                EndPage = endPage,
                CurrentPage = currentPage,
                ResultCount = totalItems,
                TotalElements = totalElements
            };
        }