private TagTd GetRow(Dictionary <DateTime, List <LmsLecture> > dateLectures, Dictionary <decimal, string> groups, DateTime day) { var lecture = dateLectures.GetValueOrDefault(day); // if (!IsCurrentMonth(day)) { // return td.Class("other-month"); // } if (lecture == null) { return(td.Class(GetColorClass(day))); } var lectureDivs = new List <TagA>(); foreach (var part in lecture) { var hours = EntityUtils.GetLectureHours(part.LectureDateBeg, part.LectureDateEnd, part.Breaks); var calc = Model.Groups[part.Group_ID]; var lecColor = groups.GetValueOrDefault(part.Group_ID) ?? "000000"; var lines = _.List( part.Course_TC, Model.GroupDates[part.Group_ID], part.ClassRoom_TC + " {0:0.##}{1}".FormatWith(hours, ak) ); if (part.Breaks > 0) { lines.Add("Перерыв " + part.Breaks); } var topHeight = GetTopAndHeight(part); var linkText = HtmlUtils.ReplaceSpaceWithNbsp(lines.JoinWith("<br/>")); lines.Insert(0, part.LectureDateBeg.ToShortTimeString() + " - " + part.LectureDateEnd.ToShortTimeString()); var titleText = lines.AddFluent("Очные: {0}\nВебинар: {1}" .FormatWith(calc.NumOfStudents, calc.NumOfWebinarists)).JoinWith("\n"); var content = Url.Lms().Lecture(part.Lecture_ID, linkText).Class("lecture") .Title(titleText) .Data("toggle", "tooltip") .Style("border-color: #{0};top: {1}px;height: {2}px" .FormatWith(lecColor, topHeight.Item1, topHeight.Item2)); lectureDivs.Add(content); } return(td[Div("lecture-wrapper")[lectureDivs]].Class(GetColorClass(day))); }
HoursVM GetHours(List <LmsLecture> lectures) { var model = new HoursVM(); lectures.Where(x => IsCurrentMonth(x.LectureDateBeg)).ForEach((l, i) => { var hours = EntityUtils.GetLectureHours(l.LectureDateBeg, l.LectureDateEnd, l.Breaks); model.Courses[l.Course_TC] = model.Courses.GetValueOrDefault(l.Course_TC) + hours; if (l.LectureType_TC == LectureTypes.Individual) { model.Ind += hours; } if (l.Complex == Cities.Complexes.NoMoscow) { model.NoMoscow += hours; } else if (l.LectureType_TC == LectureTypes.Special) { model.Spec += hours; } }); return(model); }