Beispiel #1
0
        public async Task <IPagedList <TenderDTO> > GetTendersPage(TenderQueryDTO tenderQuery, int pageNumber,
                                                                   int pageSize = 10)
        {
            // AsExpandable used becouse of LinqKit
            var tenders = Context.Tenders.AsExpandable();

            tenders = FilterTenders(tenders, tenderQuery);
            tenders = SortTenders(tenders);
            return(await GetTendersPage(tenders, pageNumber, pageSize));
        }
Beispiel #2
0
 private IQueryable <Tender> FilterTenders(IQueryable <Tender> tenders, TenderQueryDTO filter)
 {
     return(tenders
            .FilterIdentifiers(filter.ProcurementNumber)
            .FilterKeywords(filter.Keyword)
            .FilterCPV(filter.CpvCode)
            .FilterGSIN(filter.ScgsCode)
            .FilterProcurers(filter.Procurer)
            .FilterRegions(filter.Region)
            .FilterStatuses(filter.Status)
            .FilterPeriod(t => t.EnquiryPeriod, filter.ClarificationPeriod)
            .FilterPeriod(t => t.TenderPeriod, filter.ApplicationsSubmissionPeriod)
            .FilterPeriod(t => t.AuctionPeriod, filter.AuctionPeriod)
            .FilterPeriod(t => t.AwardPeriod, filter.QualificationPeriod));
 }
Beispiel #3
0
        public async Task <ActionResult> Index(TenderQueryViewModel viewModel)
        {
            if (viewModel.PageNumber < 1)
            {
                viewModel.PageNumber = 1;
            }
            if (viewModel.PageSize < 1)
            {
                viewModel.PageSize = 10;
            }

            TenderQueryDTO filter = new TenderQueryDTO
            {
                Keyword                      = viewModel.Keyword,
                CpvCode                      = viewModel.CpvCode,
                ScgsCode                     = viewModel.GsinCode,
                ProcurementNumber            = viewModel.ProcurementNumber,
                Procurer                     = viewModel.Procurer,
                Region                       = viewModel.Region,
                Status                       = viewModel.Status,
                ApplicationsSubmissionPeriod = viewModel.ApplicationsSubmissionPeriod?.ToDTO(),
                ClarificationPeriod          = viewModel.ClarificationPeriod?.ToDTO(),
                AuctionPeriod                = viewModel.AuctionPeriod?.ToDTO(),
                QualificationPeriod          = viewModel.QualificationPeriod?.ToDTO(),
            };

            IPagedList <TenderDTO> tendersPagedList = await TenderProvider.Value.GetTendersPage(filter, viewModel.PageNumber, viewModel.PageSize);

            TendersViewModel tendersViewModel = new TendersViewModel(tendersPagedList, viewModel);

            if (Request.IsAjaxRequest())
            {
                return(PartialView("Searches/Tenders/TenderTable", tendersViewModel));
            }
            else
            {
                return(View("Tenders", tendersViewModel));
            }
        }