コード例 #1
0
        public ActionResult Index(TenderModelWithFilter model)
        {
            TenderModelWithFilter list = new TenderModelWithFilter();

            list = tenderService.GetByFilter(model);

            return(View(list));
        }
コード例 #2
0
        public ActionResult Index()
        {
            TenderModelWithFilter model = new TenderModelWithFilter();

            model.PageNumber = 1;
            model.SortOrder  = "Category";
            model            = tenderService.GetByFilter(model);

            return(View(model));
        }
コード例 #3
0
        /* public IEnumerable<DateTime> GetAllDatesStart()
         * {
         *   IEnumerable<DateTime> timesS = new List<DateTime>();
         *   timesS = db.Tenders.Select(d => d.StartDate).ToList();
         *   return timesS;
         * }
         *
         * public IEnumerable<DateTime> GetAllDatesFinish()
         * {
         *   IEnumerable<DateTime> timesF = new List<DateTime>();
         *   timesF = db.Tenders.Select(d => d.FinishDate).ToList();
         *   return timesF;
         * }*/


        public TenderModelWithFilter GetByFilter(TenderModelWithFilter model)
        {
            IQueryable <Tender> query = db.Tenders;

            const int pageCount = 3;//---------------------------------

            if (!string.IsNullOrWhiteSpace(model.FilterText))
            {
                query = query.Where(ten => ten.SubjectOfTender.Contains(model.FilterText) || ten.Discription.Contains(model.FilterText));
            }

            if (model.Organizer != null)
            {
                query = query.Where(ten => ten.Organizer == model.Organizer);
            }

            if (model.TenderType != null)
            {
                query = query.Where(ten => ten.TenderType == model.TenderType);
            }

            if (model.StartDate != null)
            {
                query = query.Where(ten => ten.StartDate >= model.StartDate);
            }

            if (model.FinishDate != null)
            {
                query = query.Where(ten => ten.FinishDate <= model.FinishDate);
            }


            if (!string.IsNullOrWhiteSpace(model.SortOrder))
            {
                if (model.SortOrder == "Category")
                {
                    query = query.OrderBy(ten => ten.Category);
                }
                else if (model.SortOrder == "Budget")
                {
                    query = query.OrderBy(ten => ten.Budget);
                }
                else if (model.SortOrder == "PublicationDate")
                {
                    query = query.OrderBy(ten => ten.PublicationDate);
                }
            }


            var tenders = query.Select(ten => new TenderModel
            {
                Id              = ten.Id,
                NumberOfTender  = ten.NumberOfTender,
                SubjectOfTender = ten.SubjectOfTender,
                Discription     = ten.Discription,
                Organizer       = ten.Organizer,
                TenderType      = ten.TenderType,
                Category        = ten.Category,
                Budget          = ten.Budget,
                Currency        = ten.Currency,
                PublicationDate = ten.PublicationDate,
                StartDate       = ten.StartDate,
                FinishDate      = ten.FinishDate
            }).Skip((model.PageNumber - 1) * pageCount).Take(pageCount).ToList();
            TenderModelWithFilter coll = new TenderModelWithFilter();

            coll.Tenders = tenders;

            PageInfo page = new PageInfo
            {
                PageSize   = pageCount,
                TotalItems = query.Count()
            };

            coll.PageInfo   = page;
            coll.PageNumber = model.PageNumber;
            return(coll);
        }