// GET: Vehicles
        public ActionResult Index(string msg, bool hasAddedVehicle = false, string title = "List of vehicles", string sort = "", [Bind(Include = "RegNr,CheckIn,Color,Brand,Model,Wheels,Owner,VehicleTypeId")] VehicleDetailSearchParams searchParams = null)
        {
            List <Vehicle> vehicles = db.Vehicles.ToList();

            if (Request.Form["show"] != null)
            {
                ModelState.Clear();
                searchParams = new VehicleDetailSearchParams();
            }
            if (searchParams != null)
            {
                vehicles = SearchInList(searchParams, vehicles);
            }
            else
            {
                searchParams = new VehicleDetailSearchParams();
            }

            vehicles = SortList(ref sort, vehicles);

            return(View(new VehicleIndexViewModel
            {
                SearchParams = searchParams,
                Sort = sort,
                VehicleTypes = new SelectList(db.VehicleTypes, "Id", "Type"),
                Title = title,
                Vehicles = vehicles.ToList(),
                HasAddedVehicle = hasAddedVehicle,
                Message = msg
            }));
        }
 private static List <Vehicle> SearchInList(VehicleDetailSearchParams searchParams, List <Vehicle> vehicles)
 {
     vehicles = vehicles
                .Where(x => (!string.IsNullOrWhiteSpace(searchParams.RegNr)) ? x.RegNumber.ToLower().Contains(searchParams.RegNr.ToLower()) : true)
                .Where(x => (!string.IsNullOrWhiteSpace(searchParams.Owner)) ? x.Owner.FullName.ToLower().Contains(searchParams.Owner.ToLower()) : true)
                .Where(x => (!string.IsNullOrWhiteSpace(searchParams.Model)) ? ((x.Model != null) ? x.Model.ToLower().Contains(searchParams.Model.ToLower()) : false) : true)
                .Where(x => (!string.IsNullOrWhiteSpace(searchParams.Color)) ? ((x.Color != null) ? x.Color.ToLower().Contains(searchParams.Color.ToLower()) : false) : true)
                .Where(x => (!string.IsNullOrWhiteSpace(searchParams.Brand)) ? ((x.Brand != null) ? x.Brand.ToLower().Contains(searchParams.Brand.ToLower()) : false) : true)
                .Where(x => (searchParams.VehicleTypeId != null) ? x.Type.Id.Equals(searchParams.VehicleTypeId) : true)
                .Where(x => (searchParams.Wheels != null) ? x.Wheels.Equals(searchParams.Wheels) : true)
                .Where(x => (searchParams.CheckIn != null) ? x.CheckInTimeStamp.Date.Equals(searchParams.CheckIn.Value.Date) : true)
                .ToList();
     return(vehicles);
 }
        public ActionResult Index(VehicleDetailSearchParams searchParams, string title = "List of vehicles")
        {
            var    vehicles = db.Vehicles.ToList();
            string sort     = "";

            vehicles = SortList(ref sort, vehicles);

            if (Request.Form["show"] != null)
            {
                ModelState.Clear();
                searchParams = new VehicleDetailSearchParams();
            }
            else
            {
                vehicles = SearchInList(searchParams, vehicles);
            }

            return(View(new VehicleIndexViewModel {
                SearchParams = (searchParams != null) ? searchParams : new VehicleDetailSearchParams(), Sort = "", VehicleTypes = new SelectList(db.VehicleTypes, "Id", "Type"), Vehicles = vehicles, Title = title
            }));
        }