Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult OfficeHourDate(Guid id)
        {
            var summary = ActivityService.GetSummary(id) as ActivityDateSummary;
            var date    = summary.Date;
            var oh      = date.Activity as OfficeHour;
            var member  = date.Hosts.FirstOrDefault();

            var model = new OfficeHourCharacteristicModel
            {
                OfficeHour = oh,
                Semester   = oh.Semester,
                Host       = member,
                Date       = date
            };


            return(View(model));
        }
Beispiel #2
0
        public TeachingSemesterSummaryModel GetActivities(Semester semester, ApplicationUser user, ICollection <OrganiserMember> members)
        {
            var model = new TeachingSemesterSummaryModel
            {
                Semester = semester,
            };

            var courseSummaryService = new CourseService(_db);

            var courses =
                _db.Activities.OfType <Course>()
                .Where(x => x.SemesterGroups.Any(g =>
                                                 g.Semester.Id == semester.Id) &&
                       x.Dates.Any(d => d.Hosts.Any(h => h.UserId.Equals(user.Id))))
                .ToList();

            foreach (var course in courses)
            {
                var summary = courseSummaryService.GetCourseSummary(course);
                model.Courses.Add(summary);
            }


            var officeHours = _db.Activities.OfType <OfficeHour>().Where(x =>
                                                                         x.Semester.Id == semester.Id && x.Owners.Any(y => y.Member.UserId.Equals(user.Id)))
                              .ToList();


            foreach (var oh in officeHours)
            {
                var ohSummary = new OfficeHourCharacteristicModel()
                {
                    OfficeHour = oh
                };

                ohSummary.Date = oh.Dates.Where(x => x.Begin > DateTime.Now).OrderBy(x => x.Begin).FirstOrDefault();


                model.OfficeHours.Add(ohSummary);
            }



            var modules = new List <CurriculumModule>();

            foreach (var member in members)
            {
                modules.AddRange(_db.CurriculumModules.Where(x => x.MV.Id == member.Id).ToList());
            }


            foreach (var module in modules)
            {
                var mModel = new TeachingModuleSemesterModel
                {
                    Module = module
                };


                foreach (var moduleCourse in module.ModuleCourses)
                {
                    var semCourses =
                        moduleCourse.Nexus.Where(x => x.Course.SemesterGroups.Any(g => g.Semester.Id == semester.Id))
                        .Select(x => x.Course).Distinct().ToList();

                    foreach (var course in semCourses)
                    {
                        var summary = courseSummaryService.GetCourseSummary(course);
                        mModel.Courses.Add(summary);
                    }
                }

                model.Modules.Add(mModel);
            }

            return(model);
        }