コード例 #1
0
        public ActionResult Dictionary(Guid semId, Guid currId)
        {
            var semester = SemesterService.GetSemester(semId);
            var curr     = Db.Curricula.SingleOrDefault(x => x.Id == currId);

            var courses = SemesterService.GetCourses(semester, curr);

            var model = new SemesterScheduleViewModel
            {
                Semester   = semester,
                Curriculum = curr
            };

            foreach (var course in courses.OrderBy(x => x.Name))
            {
                var lectures =
                    Db.Members.Where(l => l.Dates.Any(occ => occ.Activity.Id == course.Id)).ToList();

                var cModel = new CourseSummaryModel
                {
                    Course    = course,
                    Lecturers = lectures
                };

                model.Courses.Add(cModel);
            }

            return(View(model));
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="course"></param>
        /// <returns></returns>
        public CourseSummaryModel GetCourseSummary(Course course)
        {
            var summary = new CourseSummaryModel {
                Course = course
            };

            var days = (from occ in course.Dates
                        select
                        new
            {
                Day = occ.Begin.DayOfWeek,
                Begin = occ.Begin.TimeOfDay,
                End = occ.End.TimeOfDay,
            }).Distinct();

            foreach (var day in days)
            {
                var defaultDay = course.Dates.FirstOrDefault(d => d.Begin.DayOfWeek == day.Day);

                var courseDate = new CourseDateModel
                {
                    DayOfWeek   = day.Day,
                    StartTime   = day.Begin,
                    EndTime     = day.End,
                    DefaultDate = defaultDay.Begin
                };
                summary.Dates.Add(courseDate);
            }

            var lectures =
                Db.Members.Where(l => l.Dates.Any(occ => occ.Activity.Id == course.Id)).ToList();

            summary.Lecturers.AddRange(lectures);

            var rooms =
                Db.Rooms.Where(l => l.Dates.Any(occ => occ.Activity.Id == course.Id)).ToList();

            summary.Rooms.AddRange(rooms);

            var vRooms =
                Db.VirtualRooms.Where(l => l.Accesses.Any(a => a.Date.Activity.Id == course.Id)).ToList();

            summary.VirtualRooms.AddRange(vRooms);



            summary.Lottery =
                Db.Lotteries.FirstOrDefault(x => x.Occurrences.Any(y => y.Id == course.Occurrence.Id));

            foreach (var semesterGroup in course.SemesterGroups)
            {
                if (!summary.Curricula.Contains(semesterGroup.CapacityGroup.CurriculumGroup.Curriculum))
                {
                    summary.Curricula.Add(semesterGroup.CapacityGroup.CurriculumGroup.Curriculum);
                }
            }

            return(summary);
        }
コード例 #3
0
 public async Task<CourseSummaryModel> GetCourse(int id)
 {
     var course = await _context.Courses.SingleOrDefaultAsync(c => c.Id == id);
     if (course == null)
     {
         return null;
     }
     var modelToReturn = new CourseSummaryModel()
     {
         Id = course.Id,
         Title = course.Title,
         Description = course.Description,
         NumberOfDays = course.NumberOfDays
     };
     return modelToReturn;
 }