Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Subscribe(Guid id)
        {
            var semester = SemesterService.GetSemester(id);

            var semSubService = new SemesterSubscriptionService(Db);

            // Liegt eine Einschreibung vor?
            var semGroup = semSubService.GetSemesterGroup(AppUser.Id, semester);

            SemesterSubscriptionViewModel model;

            if (semGroup == null)
            {
                model = GetModel(semester);
            }
            else
            {
                model = new SemesterSubscriptionViewModel
                {
                    Group    = semGroup,
                    Semester = semester.Id.ToString()
                };
            }

            ViewBag.Semester = semester;

            return(View("Semester", model));
        }
Пример #2
0
        public ActionResult UpdateSemesterGroup(SemesterSubscriptionViewModel model)
        {
            var user = AppUser;

            var semSubService = new SemesterSubscriptionService();

            if (user != null)
            {
                var group = Db.SemesterGroups.SingleOrDefault(g => g.Id.ToString().Equals(model.CurrGroup));

                if (group != null)
                {
                    semSubService.Subscribe(user.Id, group.Id);
                    model.Group = group;
                }
            }


            return(RedirectToAction("Index"));
        }
Пример #3
0
        private SemesterSubscriptionViewModel GetModel(Semester semester)
        {
            var model = new SemesterSubscriptionViewModel
            {
                Semester   = semester.Id.ToString(),
                Group      = null,
                Faculty    = string.Empty,
                Curriculum = string.Empty,
                CurrGroup  = string.Empty,
            };

            var semService    = new SemesterService(Db);
            var semSubService = new SemesterSubscriptionService(Db);

            // Alle Fakultäten, die aktive Semestergruppen haben
            var acticeorgs = semService.GetActiveOrganiser(semester, true);

            ViewBag.Semesters = new List <SelectListItem>()
            {
                new SelectListItem
                {
                    Text  = semester.Name,
                    Value = semester.Id.ToString()
                }
            };


            // Immer alle anzeigen, die was haben
            ViewBag.Faculties = acticeorgs.OrderBy(f => f.ShortName).Select(f => new SelectListItem
            {
                Text  = f.ShortName,
                Value = f.Id.ToString(),
            });

            // Liste der Studiengänge
            var actOrg     = acticeorgs.FirstOrDefault();
            var activecurr = semService.GetActiveCurricula(actOrg, semester, true);

            // Liste der Gruppen hängt jetzt von der Einschreibung ab

            // keine Einschreibung vorhanden
            if (!activecurr.Any())
            {
                model.HasData = false;
            }
            else
            {
                model.HasData = true;

                ViewBag.Curricula = activecurr.OrderBy(f => f.ShortName).Select(f => new SelectListItem
                {
                    Text  = string.Format("{0} ({1})", f.ShortName, f.Name),
                    Value = f.Id.ToString(),
                });


                // nimm den ersten
                var myCurr = activecurr.First();

                var semesterGroups = Db.SemesterGroups.Where(g =>
                                                             g.Semester.Id == semester.Id &&
                                                             g.IsAvailable &&
                                                             g.CapacityGroup.CurriculumGroup.Curriculum.Id == myCurr.Id).OrderBy(g => g.CapacityGroup.CurriculumGroup.Name).ToList();


                var semGroups = semesterGroups.Select(s => new SelectListItem
                {
                    Text  = s.FullName,
                    Value = s.Id.ToString()
                }).ToList();

                ViewBag.Groups = semGroups;
            }

            ViewBag.Semester = semester;

            return(model);
        }