/// <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); }
/// <summary> /// /// </summary> /// <param name="htmlHelper"></param> /// <param name="dates"></param> /// <returns></returns> public static MvcHtmlString Date(this HtmlHelper htmlHelper, CourseDateModel date) { var sb = new StringBuilder(); sb.AppendFormat("{0} [{1:hh\\:mm} - {2:hh\\:mm}]", date.DefaultDate.ToString("dddd", new CultureInfo("de-DE")), date.StartTime, date.EndTime); return(new MvcHtmlString(sb.ToString())); }