public IQueryable <SubscriptionDto> Courses([FromBody] SubscriptionCourseModel model)
        {
            var memberService   = new MemberService(Db);
            var semService      = new SemesterService(Db);
            var teachingService = new TeachingService(Db);

            var list = new List <SubscriptionDto>();

            var user    = GetUser(model.Id.ToString());
            var members = memberService.GetFacultyMemberships(user.Id);


            var semester = semService.GetSemester(DateTime.Today);


            var teaching = teachingService.GetActivities(semester, user, members);


            foreach (var course in teaching.Courses)
            {
                var subModel = new SubscriptionDto();

                subModel.CourseId = course.Course.Id;
                subModel.Title    = course.Course.Name;

                list.Add(subModel);
            }

            return(list.AsQueryable());
        }
Beispiel #2
0
        // GET: Teaching
        public ActionResult Index(Guid?id)
        {
            var user    = GetCurrentUser();
            var members = MemberService.GetFacultyMemberships(user.Id);

            if (!members.Any())
            {
                return(RedirectToAction("Apply"));
            }

            Semester currentSemester = null;

            if (id == null)
            {
                // das aktuelle Semester bestimmen es gilt das neues aller Semester in alle
                // Fakultäen
                var semesterToday = SemesterService.GetSemester(DateTime.Today);
                var mySemester    = semesterToday;
                foreach (var organiserMember in members)
                {
                    var latestSemester = SemesterService.GetLatestSemester(organiserMember.Organiser);

                    if (latestSemester.StartCourses > semesterToday.StartCourses)
                    {
                        mySemester = latestSemester;
                    }
                }

                // gegencheck: wenn ich noch termine im aktuellen Semester habe, dann nimm das
                if (mySemester != semesterToday)
                {
                }


                currentSemester = mySemester;
            }
            else
            {
                currentSemester = SemesterService.GetSemester(id);
            }

            var TeachingService = new TeachingService(Db);
            var userService     = new UserInfoService();

            var model = new TeachingOverviewModel();

            model.CurrentSemester = TeachingService.GetActivities(currentSemester, user, members);
            model.PrevSemester    = SemesterService.GetPreviousSemester(currentSemester);
            model.NextSemester    = SemesterService.GetNextSemester(currentSemester);
            model.Members         = members.ToList();


            // Abschlussarbeiten
            model.ActiveTheses = new List <ThesisStateModel>();

            var theses = TeachingService.GetActiveTheses(user);

            foreach (var thesis in theses)
            {
                var tm = new ThesisStateModel
                {
                    Thesis  = thesis,
                    Student = thesis.Student,
                    User    = userService.GetUser(thesis.Student.UserId)
                };

                model.ActiveTheses.Add(tm);
            }


            return(View(model));
        }