예제 #1
0
    {/// <summary>
     /// Créé les listes de sélection et assure qu'une agence
     /// soit sélectionnée.
     /// </summary>
     /// <param name="officeName"></param>
     /// <returns></returns>
        public static VMvehicleFilters SetDefaultFilters(string officeName)
        {
            VMvehicleFilters _filters = new VMvehicleFilters();

            //Récupération des options.

            {// Génère les listes des options de filtre en session.
                BO.FilterOptions _filterOptions = BL.BLVehicle.GetFilterOptions();
                if (_filterOptions.lstOffices.Contains("AirCar Belgium"))
                {
                    _filterOptions.lstOffices.Remove("AirCar Belgium");
                }
                _filters.LstOffices = new SelectList(_filterOptions.lstOffices);
                _filters.LstMakes   = new SelectList(_filterOptions.lstMakes);
                _filters.LstFuels   = new SelectList(_filterOptions.lstFuels);
                _filters.LstDoors   = new SelectList(_filterOptions.lstDoors);
            }
            // Selection de l'agence (office) à utiliser.
            //Si pas de paramètres fournis, agence par défaut.
            SelectList _selectList = _filters.LstOffices;
            string     _slctdOffice;

            _slctdOffice = (string.IsNullOrEmpty(officeName) != true) ? officeName :
                           (_selectList.SelectedValue != null) ? _selectList.SelectedValue.ToString() : // Si une agence a déjà été sélectionnée (via Session["slctdOffice").
                           _selectList.ElementAt(0).Text;                                               // sinon (en cas de session expirée)
            SelectList _updatedList = new SelectList(_filters.LstOffices.Items, _slctdOffice);          // _filters.LstOffices.FirstOrDefault(x => x.Text == _slctdOffice).Text);

            _filters.LstOffices = _updatedList;
            return(_filters);
        }
        /// <summary>
        /// Mets à jour la liste des filtres.
        /// Appelle la fonction d'update si nécessaire.
        /// </summary>
        public void SetFilterOptions(BO.FilterOptions selectedOptions = null)
        {
            VMvehicleFilters _filters = new VMvehicleFilters();

            if (Session["filters"] == null)
            {
                _filterOptions = BL.BLVehicle.GetFilterOptions();
                if (_filterOptions.lstOffices.Contains("AirCar Belgium"))
                {
                    _filterOptions.lstOffices.Remove("AirCar Belgium");
                }
                _filters.LstOffices = new SelectList(_filterOptions.lstOffices);
                _filters.LstMakes   = new SelectList(_filterOptions.lstMakes);
                _filters.LstFuels   = new SelectList(_filterOptions.lstFuels);
                _filters.LstDoors   = new SelectList(_filterOptions.lstDoors);

                Session["filters"] = _filters;
            }
            else
            {
                _filters = Session["filters"] as VMvehicleFilters;
            }
            if (selectedOptions != null)
            {
                UpdateFilterOptions(selectedOptions);
            }
        }
        /// <summary>
        /// Mets à jour les filtres pour dropdowns selection dans Session["filters"].
        /// </summary>
        /// <param name="filterOptions"></param>
        public BO.SlctdFilters UpdateFilterOptions(BO.FilterOptions filterOptions)
        {
            VMvehicleFilters _session = (VMvehicleFilters)Session["filters"];

            BO.SlctdFilters _slctdfilters = new BO.SlctdFilters();

            if (filterOptions.lstOffices != null && filterOptions.lstOffices[0] != "")
            {
                // Session["slctdOffice"] = filterOptions.lstOffices[0];     Pas utilisé pour éviter possible confusion/oubli.
                SelectList UpdatedLstOffices = new SelectList(_session.LstOffices.Items, filterOptions.lstOffices[0]);
                ((VMvehicleFilters)Session["filters"]).LstOffices = UpdatedLstOffices;
                _slctdfilters.OfficeName = filterOptions.lstOffices[0];
            }
            else if (_session.LstOffices.SelectedValue != null)
            {
                _slctdfilters.OfficeName = _session.LstOffices.SelectedValue.ToString();
            }

            if (filterOptions.lstMakes != null && filterOptions.lstMakes[0] != "")
            {
                SelectList UpdatedlstMakes = new SelectList(_session.LstMakes.Items, filterOptions.lstMakes[0]);
                ((VMvehicleFilters)Session["filters"]).LstMakes = UpdatedlstMakes;
                _slctdfilters.MakeName = filterOptions.lstMakes[0];
            }
            else if (_session.LstMakes.SelectedValue != null)
            {
                _slctdfilters.MakeName = _session.LstMakes.SelectedValue.ToString();
            }

            if (filterOptions.lstFuels != null && filterOptions.lstFuels[0] != "")
            {
                SelectList UpdatedlstFuels = new SelectList(_session.LstFuels.Items, filterOptions.lstFuels[0]);
                ((VMvehicleFilters)Session["filters"]).LstFuels = UpdatedlstFuels;
                _slctdfilters.FuelName = filterOptions.lstFuels[0];
            }
            else if (_session.LstFuels.SelectedValue != null)
            {
                _slctdfilters.FuelName = _session.LstFuels.SelectedValue.ToString();
            }

            if (filterOptions.lstDoors != null && filterOptions.lstDoors[0] != 0)
            {
                SelectList UpdatedlstDoors = new SelectList(_session.LstDoors.Items, filterOptions.lstDoors[0]);
                ((VMvehicleFilters)Session["filters"]).LstDoors = UpdatedlstDoors;
                _slctdfilters.DoorsCount = filterOptions.lstDoors[0];
            }
            else if (_session.LstDoors.SelectedValue != null)
            {
                _slctdfilters.DoorsCount = (byte)_session.LstDoors.SelectedValue;
            }

            return(_slctdfilters);
        }
        /// <summary>
        /// Affiche les promos de l'agence en session
        /// ou par défaut.
        /// </summary>
        /// <param name="officeName"></param>
        /// <returns></returns>
        // GET: Promos
        public ActionResult Index(string officeName)
        {
            BO.SlctdFilters _slctdFilters = new BO.SlctdFilters();

            //Récupération des options et sauvegarde en session.
            VMvehicleFilters _filters = (VMvehicleFilters)(Session["filters"]) ?? BLweb.BLweb.SetDefaultFilters(officeName);

            if (_filters.LstOffices.SelectedValue == null)
            {
                _filters = BLweb.BLweb.SetDefaultFilters(officeName);
            }
            if (_filters == null)
            {
                return(HttpNotFound());
            }
            Session["filters"] = _filters;
            return(View(GetPromosByOffice(_filters.LstOffices.SelectedValue.ToString())));
        }
        public ActionResult Fleet(string officeName)
        {
            BO.SlctdFilters _vehiclefilter = new BO.SlctdFilters();

            //Récupération des options et sauvegarde en session.
            VMvehicleFilters _filters = (VMvehicleFilters)(Session["filters"]) ?? BLweb.BLweb.SetDefaultFilters(officeName);

            if (_filters.LstOffices.SelectedValue == null)
            {
                _filters = BLweb.BLweb.SetDefaultFilters(officeName);
            }
            Session["filters"] = _filters;
            ViewBag.selectList = _filters.LstOffices;   //pour dropdown.
                                                        // Récup des véhicules à afficher.
            _vehiclefilter.OfficeName = _filters.LstOffices.SelectedValue.ToString();
            TempData["vehiclefilter"] = _vehiclefilter; // pour passage à GetVehiclesByFilter()
            return(View("Fleet", GetVehiclesByFilter()));
        }