示例#1
0
        public ActionResult GetView()
        {
            BikeListViewModel    bikeListViewModel = new BikeListViewModel();
            BikeBusinessLayer    bikeList          = new BikeBusinessLayer();
            List <Bike>          bikes             = bikeList.GetBikes();
            List <BikeViewModel> bikeViewModels    = new List <BikeViewModel>();

            foreach (Bike bike in bikes)
            {
                BikeViewModel bikeViewModel = new BikeViewModel();
                bikeViewModel.BikeNameAndModel = bike.BikeName + " " + bike.BikeModel;
                bikeViewModel.BikePrice        = bike.BikePrice.ToString("G");
                if (bike.BikePrice > 200000)
                {
                    bikeViewModel.BikeColor = "green";
                }
                else
                {
                    bikeViewModel.BikeColor = "red";
                }
                bikeViewModels.Add(bikeViewModel);
            }
            bikeListViewModel.Bikes = bikeViewModels;
            return(View("SampleView", bikeListViewModel));
        }
        public BikeListViewModel applyFilters(BikeListViewModel viewModel, string sortOrder, string make, int?age, string type)
        {
            if (sortOrder == null && make == null && (age == 0 || age == null) && type == null)
            {
                viewModel.Bikes = viewModel.Bikes.OrderBy(s => s.Make).ThenBy(s => s.Model);
                return(viewModel);
            }

            if (age.Equals(0))
            {
            }
            else
            {
                DateTime moment      = DateTime.Now;
                int      currentYear = moment.Year;

                if (age <= 5)
                {
                    viewModel.Bikes = viewModel.Bikes.Where(s => s.MinYear >= (currentYear - age) || s.MaxYear >= (currentYear - age));
                }
                else
                {
                    viewModel.Bikes = viewModel.Bikes.Where(s => s.MinYear < (currentYear - age) || s.MaxYear < (currentYear - age));
                }
            }

            if (type.Equals("Any Type"))
            {
            }
            else
            {
                viewModel.Bikes = viewModel.Bikes.Where(s => s.BikeType.Contains(type));
            }

            if (make.Equals("Any Make"))
            {
            }
            else if (sortOrder.Equals("(A-Z)"))
            {
                viewModel.Bikes = viewModel.Bikes.Where(s => s.Make.Contains(make)).OrderBy(s => s.Make).ThenBy(s => s.Model);
                return(viewModel);
            }
            else if (sortOrder.Equals("(Z-A)"))
            {
                viewModel.Bikes = viewModel.Bikes.Where(s => s.Make.Contains(make)).OrderByDescending(s => s.Make).ThenByDescending(s => s.Model);
                return(viewModel);
            }

            if (sortOrder.Equals("(A-Z)"))
            {
                viewModel.Bikes = viewModel.Bikes.OrderBy(s => s.Make).ThenBy(s => s.Model);
            }
            else if (sortOrder.Equals("(Z-A)"))
            {
                viewModel.Bikes = viewModel.Bikes.OrderByDescending(s => s.Make).ThenBy(s => s.Model);
            }

            return(viewModel);
        }
        public IActionResult Index()
        {
            var bikeList = new BikeListViewModel();

            bikeList.BikeList = _bikeService.GetAllBike();

            return(View(bikeList));
        }
示例#4
0
        public IActionResult Bike(int id, BikeFiltersForm filters)
        {
            BikeListViewModel model = new BikeListViewModel();

            model.BikeFilters    = filters;
            model.IndividualBike = _db.Bikes.FirstOrDefault(s => s.Id == id);
            return(View(model));
        }
示例#5
0
        public IActionResult Index(BikeListViewModel model, int page, bool?resetFilters)
        {
            //TODO Handle null reference properly
            //model.BikeFilters.SortOrder ? ViewBag.SortOrder = model.BikeFilters.SortOrder : "[A-Z]";

            if (resetFilters == true)
            {
                HttpContext.Session.Clear();
            }

            if (model.BikeFilters == null)
            {
            }
            else
            {
                if (HttpContext.Session.GetString("SortOrder") == null && model.BikeFilters.SortOrder == null)
                {
                    HttpContext.Session.SetString("SortOrder", "(A-Z)");
                }
                else
                {
                    HttpContext.Session.SetString("SortOrder", model.BikeFilters.SortOrder);
                }

                if (HttpContext.Session.GetString("Make") == null && model.BikeFilters.Make == null)
                {
                    HttpContext.Session.SetString("Make", "Any Make");
                }
                else
                {
                    HttpContext.Session.SetString("Make", model.BikeFilters.Make);
                }

                HttpContext.Session.SetInt32("Age", model.BikeFilters.Age);

                if (HttpContext.Session.GetString("Type") == null && model.BikeFilters.Type == null)
                {
                    HttpContext.Session.SetString("Type", "Any Type");
                }
                else
                {
                    HttpContext.Session.SetString("Type", model.BikeFilters.Type);
                }
            }


            model.Bikes       = _db.Bikes;
            model.BikePerPage = 30;
            if (page == 0)
            {
                model.CurrentPage = 1;
            }
            else
            {
                model.CurrentPage = page;
            }
            BikeFilterHelper helper = new BikeFilterHelper();

            model = helper.applyFilters(model, HttpContext.Session.GetString("SortOrder"), HttpContext.Session.GetString("Make"), HttpContext.Session.GetInt32("Age"), HttpContext.Session.GetString("Type"));

            return(View(model));
        }