private async Task PrepareViewBag() { IEnumerable <object> years = Enumerable.Range(1990, (DateTime.Now.Year - 1990 + 7)) .Reverse() .Select(i => new { Id = i, Name = i.ToString() }); IEnumerable <CountryModel> countries = await StudentService.GetCountries(); ViewBag.Countries = new SelectList(countries, "Id", "Name"); ViewBag.Languages = await StudentService.GetLanguages(); ViewBag.EnteringYears = new SelectList(Enumerable.Range(1990, (DateTime.Now.Year - 1990 + 2)).Reverse()); ViewBag.GraduatingYears = new SelectList(years, "Id", "Name"); ViewBag.GraduatingYearsAsEnumerable = years; ViewBag.Classifications = new SelectList(StudentService.GetClassifications(), "Id", "Name"); ViewBag.AvailableMajors = await StudentService.GetMajors(); ViewBag.AvailableMinors = await StudentService.GetMinors(); IList <object> studyYears = new List <object>(years); studyYears.Insert(0, new { Id = StudentService.GetStudyAbroadWishlistCatchAllYearValue(), Name = "Any Year" }); ViewBag.StudyAbroadYears = new SelectList(studyYears, "Id", "Name"); ViewBag.StudyAbroadSemesters = StudentService.GetStudyAbroadWishlistPeriodsWithCatchAll(); List <GroupedSelectListItem> places = (await StudentService.GetRegions()).Select(r => new GroupedSelectListItem() { GroupKey = "1", GroupName = "Regions", Text = r.Name, Value = r.Id.ToString() }).ToList(); places.AddRange(countries.Select(c => new GroupedSelectListItem() { GroupKey = "2", GroupName = "Countries", Text = c.Name, Value = c.Id.ToString() })); ViewBag.StudyAbroadPlaces = places; ViewBag.Promos = await PromoService.AsSources(); ViewBag.CanUserDeleteStudents = (Session["User"] as UserModel).IsAdmin; }