Ejemplo n.º 1
0
        public ActionResult Index([Bind(Include = "name,typeOfSearch,minPrice,maxPrice,status")] SearchAuctionViewModel sa)
        {
            //search parameters
            var name         = sa.name;
            var minPrice     = sa.minPrice;
            var maxPrice     = sa.maxPrice;
            var status       = sa.status;
            var typeOfSearch = sa.typeOfSearch;

            var query = db.Auctions.Where(s => s.name.Contains(name)); //search for auctions with that name
            var aList = query.ToList();                                //.FirstOrDefault<Auction>();


            if (aList == null)
            {
                return(HttpNotFound());
            }

            var savcm = new SearchAuctionViewContainerModel();

            savcm.searchAuctionViewModel = new SearchAuctionViewModel();
            savcm.auctionList            = aList.ToPagedList(1, 3);
            return(View(savcm));

            //return View(db.Auctions.ToList());
        }
Ejemplo n.º 2
0
        // GET: Auctions
        public ActionResult Index([Bind(Include = "name,typeOfSearch,minPrice,maxPrice,status")] SearchAuctionViewModel sa,
                                  string currentFilter, int?page, string sortOrder, string searchString)
        {
            var savcm = new SearchAuctionViewContainerModel(); //na pocetku kreiram dole postavljam

            savcm.searchAuctionViewModel = new SearchAuctionViewModel();

            int pageSize   = 5;           //elemenata po strani
            int pageNumber = (page ?? 1); //trenutna strana

            //search parameters
            var name         = sa.name;
            var minPrice     = sa.minPrice;
            var maxPrice     = sa.maxPrice;
            var status       = sa.status;
            var typeOfSearch = sa.typeOfSearch;

            //SVE AUCKIJE
            IQueryable <Auction> auctionsList = db.Auctions;

            //savcm.auctionList = db.Auctions.OrderBy(a => a.Id).ToPagedList(pageNumber, pageSize);

            //Filter minimal price
            if (minPrice != Decimal.Zero)
            {
                auctionsList = auctionsList.Where(a => a.price >= minPrice);
            }
            //Filter maximal price
            if (maxPrice != Decimal.Zero)
            {
                auctionsList = auctionsList.Where(a => a.price <= maxPrice);
            }
            //Filter status of auction
            if (!String.IsNullOrEmpty(status))
            {
                auctionsList = auctionsList.Where(a => a.status.Equals(status));
            }

            //EXACT ALL po default-u kada nema typeOfSearch
            if (String.IsNullOrEmpty(typeOfSearch) && !String.IsNullOrEmpty(name))
            {
                //EXACT ALL
                auctionsList = auctionsList.Where(a => a.name.Equals(name));
            }
            else if (!String.IsNullOrEmpty(name))      //NEKI OD OSTALIH VRSTA PRETRAGA
            {
                string[] keywords  = name.Split(null); //pripremi kljucne reci
                var      predicate = PredicateBuilder.False <Auction>();

                switch (typeOfSearch)
                {
                case "EK":     //Exact Keywords -> where Name like 'first' AND Name like 'second'...
                    foreach (string keyword in keywords)
                    {
                        string temp = keyword;
                        predicate = predicate.And(a => a.name.Equals(temp));
                    }
                    break;

                case "PA":     //Partial All -> where Name like 'Go He'
                    auctionsList = auctionsList.Where(a => a.name.Contains(name));
                    break;

                case "PK":     //Partial Keywords -> where Name like 'first' OR Name like 'second'...
                    foreach (string keyword in keywords)
                    {
                        string temp = keyword;
                        predicate = predicate.Or(a => a.name.Contains(temp));
                    }
                    break;
                }
                //isto za sva 3 slucaja
                auctionsList = auctionsList.Where(predicate);
            }
            savcm.auctionList = auctionsList.OrderByDescending(o => o.closing).ToPagedList(pageNumber, pageSize);
            return(View(savcm));
        }