/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Member(Guid id) { var member = Db.Members.SingleOrDefault(m => m.Id == id); if (member == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } // Alle Vorlesungen // Alle Sprechstunden // Alle Newsletter // Alle Veranstaltungen // => var model = new LecturerCharacteristicModel { Lecturer = member }; var semester = SemesterService.GetLatestSemester(member.Organiser); var user = AppUser; var courseService = new CourseService(Db); model.Courses = courseService.GetCourses(semester.Name, member); foreach (var course in model.Courses) { course.State = ActivityService.GetActivityState(course.Course.Occurrence, user); } // alle zukünftigen Sprechstunden model.OfficeHours = new List <OfficeHourSummaryModel>(); var officeHours = Db.Activities.OfType <OfficeHour>().Where(x => (x.Semester.EndCourses >= DateTime.Today || x.Dates.Any(d => d.End >= DateTime.Today)) && x.Owners.Any(k => k.Member.Id == member.Id) ).ToList(); foreach (var officeHour in officeHours) { model.OfficeHours.Add(new OfficeHourSummaryModel { OfficeHour = officeHour }); } model.Semester = semester; ViewBag.UserRight = GetUserRight(User.Identity.Name, member.Organiser.ShortName); return(View("MemberPublic", model)); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult MemberAdmin(Guid id) { var member = Db.Members.SingleOrDefault(m => m.Id == id); if (member == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } // Alle Vorlesungen // Alle Sprechstunden // Alle Newsletter // Alle Veranstaltungen // => var model = new LecturerCharacteristicModel { Lecturer = member }; var semester = SemesterService.GetLatestSemester(member.Organiser); var user = AppUser; var courseService = new CourseService(Db); model.Courses = courseService.GetCourses(semester.Name, member); foreach (var course in model.Courses) { var lectures = Db.Members.Where(l => l.Dates.Any(occ => occ.Activity.Id == course.Course.Id)).ToList(); course.Lecturers.AddRange(lectures); var rooms = Db.Rooms.Where(l => l.Dates.Any(occ => occ.Activity.Id == course.Course.Id)).ToList(); course.Rooms.AddRange(rooms); course.State = ActivityService.GetActivityState(course.Course.Occurrence, user); } // Sprechstunde im aktuellen Semester var ohService = new OfficeHourService(Db); model.OfficeHour = ohService.GetLatestOfficeHour(member); model.Semester = semester; ViewBag.UserRight = GetUserRight(User.Identity.Name, member.Organiser.ShortName); return(View("Member", model)); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Calendar(Guid id) { var member = Db.Members.SingleOrDefault(m => m.Id == id); if (member == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var model = new LecturerCharacteristicModel { Lecturer = member }; ViewBag.UserRight = GetUserRight(User.Identity.Name, member.Organiser.ShortName); return(View(model)); }