// GET: Universities/RedirectToIndex
        public ActionResult RedirectToIndex()
        {
            string searchCriteriaInSessionData = Session["UniversitySearchCriteria"]?.ToString();
            string countryInSessionData        = Session["UniversityCountry"]?.ToString();
            int?   currentPageInSessionData    = (int?)Session["CurrentUniversityPage"];

            UniversitySortOrder sortOrderInSessionData =
                Session["UniversitySortOrder"] != null
                ? (UniversitySortOrder)Session["UniversitySortOrder"]
                : UniversitySortOrder.NAME_ASC;

            return(RedirectToAction("Index",
                                    new
            {
                page = currentPageInSessionData,
                searchCriteria = searchCriteriaInSessionData,
                sortOrder = sortOrderInSessionData,
                country = countryInSessionData
            }));
        }
        // GET: Universities/{page}/{searchCriteria}/{sortOrder}/{country}
        public ActionResult Index(int?page, string searchCriteria = null, UniversitySortOrder sortOrder = UniversitySortOrder.NAME_ASC, string country = null)
        {
            IEnumerable <University> universities;

            Session["CurrentUniversityPage"]    = page;
            Session["UniversitySortOrder"]      = sortOrder;
            Session["UniversitySearchCriteria"] = searchCriteria;
            Session["UniversityCountry"]        = country;

            ViewBag.SearchCriteria = searchCriteria;
            ViewBag.Country        = country;

            // Default value from html dropdown list
            if (country == "")
            {
                country = null;
            }

            if (country != null && searchCriteria != null)
            {
                universities = _universityRepository.GetMany(university => university.Country == country && university.Name.Contains(searchCriteria));
            }
            else if (searchCriteria != null)
            {
                universities = _universityRepository.GetMany(university => university.Name.Contains(searchCriteria));
            }
            else if (country != null)
            {
                universities = _universityRepository.GetMany(university => university.Country == country);
            }
            else
            {
                universities = _universityRepository.GetAll();
            }

            return(View(_paginationHandler.ConstructViewModel(universities, page, sortOrder)));
        }