private DashboardStudentViewModel CreateDashboardModelStudentNew(UserRight userRight) { var student = StudentService.GetCurrentStudent(userRight.User.Id); var currentSemester = student != null?SemesterService.GetNewestSemester(student.Curriculum.Organiser) : SemesterService.GetSemester(DateTime.Today); var prevSemester = SemesterService.GetPreviousSemester(currentSemester); var model = new DashboardStudentViewModel { User = userRight.User, Semester = prevSemester, NextSemester = currentSemester, Student = student, Organiser = student?.Curriculum.Organiser }; if (student != null) { var limit = DateTime.Today.AddDays(-7); model.Advertisements = Db.Advertisements.Where(x => x.Owner.Organiser.Id == student.Curriculum.Organiser.Id && x.Created >= limit).ToList(); } else { model.Advertisements = new List <Advertisement>(); } return(model); }
/// <summary> /// /// </summary> public ActionResult PersonalPlanList(Guid id) { var semester = SemesterService.GetSemester(id); var user = AppUser; var courseService = new CourseService(Db); var model = new DashboardStudentViewModel(); model.Semester = semester; model.User = user; model.Student = StudentService.GetCurrentStudent(user); model.Courses = new List <CourseSummaryModel>(); var courses = Db.Activities.OfType <Course>().Where(a => a.SemesterGroups.Any(g => g.Semester.Id == semester.Id) && a.Occurrence.Subscriptions.Any(u => u.UserId.Equals(model.User.Id))).ToList(); foreach (var course in courses) { var summary = courseService.GetCourseSummary(course); model.Courses.Add(summary); var state = ActivityService.GetActivityState(course.Occurrence, user); summary.User = user; summary.Subscription = state.Subscription; summary.Lottery = Db.Lotteries.FirstOrDefault(x => x.Occurrences.Any(y => y.Id == course.Occurrence.Id)); } return(View(model)); }
private DashboardStudentViewModel CreateDashboardModelOrgMemberNew(UserRight userRight) { var org = GetMyOrganisation(); var currentSemester = SemesterService.GetNewestSemester(org); var prevSemester = SemesterService.GetPreviousSemester(currentSemester); var model = new DashboardStudentViewModel { User = userRight.User, Semester = prevSemester, NextSemester = currentSemester, Organiser = org }; return(model); }
private DashboardStudentViewModel CreateDashboardModelStudentNew(UserRight userRight) { var student = StudentService.GetCurrentStudent(userRight.User.Id); var currentSemester = SemesterService.GetNewestSemester(student.Curriculum.Organiser); var prevSemester = SemesterService.GetPreviousSemester(currentSemester); var model = new DashboardStudentViewModel { User = userRight.User, Semester = prevSemester, NextSemester = currentSemester, Student = student, Organiser = student.Curriculum.Organiser }; return(model); }
public ActionResult Schedule(Guid id) { var userRight = GetUserRight(); ViewBag.UserRight = userRight; var semSubService = new SemesterSubscriptionService(); var user = AppUser; // das übergebene Semester var currentSemester = SemesterService.GetSemester(id); var model = new DashboardStudentViewModel(); model.User = user; model.Organiser = GetMyOrganisation(); model.Semester = currentSemester; model.SemesterGroup = semSubService.GetSemesterGroup(user.Id, currentSemester); return(View(model)); }
private DashboardStudentViewModel CreateDashboardModelOrgMemberNew(UserRight userRight) { var org = GetMyOrganisation(); var currentSemester = SemesterService.GetNewestSemester(org); var prevSemester = SemesterService.GetPreviousSemester(currentSemester); var model = new DashboardStudentViewModel { User = userRight.User, Semester = prevSemester, NextSemester = currentSemester, Organiser = org }; var limit = DateTime.Today.AddDays(-7); model.Advertisements = Db.Advertisements.Where(x => x.Owner.Organiser.Id == org.Id && x.Created >= limit).ToList(); return(model); }
private DashboardStudentViewModel CreateDashboardModelStudent(UserRight userRight) { var semSubService = new SemesterSubscriptionService(); var currentSemester = SemesterService.GetSemester(DateTime.Today); var nextSemester = SemesterService.GetNextSemester(DateTime.Today); var model = new DashboardStudentViewModel { User = userRight.User, Semester = currentSemester, SemesterGroup = semSubService.GetSemesterGroup(userRight.User.Id, currentSemester), Student = Db.Students.Where(x => x.UserId.Equals(userRight.User.Id)).OrderByDescending(x => x.Created).FirstOrDefault() }; // keine Semestergruppe gewählt => aktive Pläne suchen if (model.SemesterGroup == null) { model.ActiveOrgsSemester = SemesterService.GetActiveOrganiser(currentSemester, true); } // das nächste Semester nur anzeigen, wenn es einen veröffentlichsten Stundenplan für die letzte Fakultät gibt! var nextSemesterOrgs = SemesterService.GetActiveOrganiser(nextSemester, true); if (nextSemesterOrgs.Any()) { model.NextSemester = nextSemester; model.NextSemesterGroup = semSubService.GetSemesterGroup(userRight.User.Id, nextSemester); if (model.NextSemesterGroup == null) { model.ActiveOrgsNextSemester = nextSemesterOrgs; } } // Alle Anfragen zu Abschlussarbeiten var supervisions = Db.Activities.OfType <Supervision>() .Where(x => x.Occurrence.Subscriptions.Any(y => y.UserId.Equals(userRight.User.Id))).ToList(); foreach (var supervision in supervisions) { var request = new SupervisionRequestModel(); request.Supervision = supervision; request.Lecturer = supervision.Owners.First().Member; request.Subscription = supervision.Occurrence.Subscriptions.FirstOrDefault(x => x.UserId.Equals(userRight.User.Id)); model.Requests.Add(request); } // Alle Abschlussarbeiten var theses = Db.Theses.Where(x => x.Student.UserId.Equals(userRight.User.Id)).ToList(); foreach (var thesis in theses) { var tModel = new ThesisDetailModel(); tModel.Thesis = thesis; tModel.Lecturer = thesis.Supervision.Owners.First().Member; model.Theses.Add(tModel); } // Alle heutigen Termine // Alle Eintragungen var begin = DateTime.Now; var end = DateTime.Today.AddDays(1); var allDates = Db.ActivityDates.Where(d => (d.Activity.Occurrence.Subscriptions.Any(s => s.UserId.Equals(userRight.User.Id)) || d.Occurrence.Subscriptions.Any(s => s.UserId.Equals(userRight.User.Id)) || d.Slots.Any(slot => slot.Occurrence.Subscriptions.Any(s => s.UserId.Equals(userRight.User.Id)))) && d.End >= begin && d.End <= end).OrderBy(d => d.Begin).ToList(); foreach (var date in allDates) { var act = new AgendaActivityViewModel { Date = date, Slot = date.Slots.FirstOrDefault(x => x.Occurrence.Subscriptions.Any(s => s.UserId.Equals(userRight.User.Id))) }; model.TodaysActivities.Add(act); } if (model.Student != null) { var org = model.Student.Curriculum.Organiser; // Alle Platzverlosungen // letzte 90 Tage var lastEnd = DateTime.Today; var alLotteries = Db.Lotteries.Where(x => x.IsActiveUntil >= lastEnd && x.IsAvailable && x.Organiser != null && x.Organiser.Id == org.Id).OrderBy(x => x.FirstDrawing).ToList(); foreach (var lottery in alLotteries) { var courseList = new List <Course>(); courseList.AddRange( lottery.Occurrences.Select( occurrence => Db.Activities.OfType <Course>().SingleOrDefault( c => c.Occurrence.Id == occurrence.Id)).Where(course => course != null)); var hasFit = courseList.Any(c => c.SemesterGroups.Any(g => g.CapacityGroup.CurriculumGroup.Curriculum.Id == model.Student.Curriculum.Id)); if (hasFit) { model.Lotteries.Add(lottery); } } } return(model); }