/// <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)); }
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")); }
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); }