コード例 #1
0
        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;
        }