public static List <ScheduleView> GetLessons() { var list = Parser.GetDataFromTable <LessonCell>((int)ConstantIndexes.ContentRowIndex, (int)ConstantIndexes.ContentColumnIndex, Days.Last().EndCellIndex.GetNumber()); var resultList = new List <LessonCell>(); foreach (var item in list) { var itemGroups = Groups.Where(g => g.IsInColumnRange(item.StartCellIndex, item.EndCellIndex)).ToList(); if (itemGroups.Count != 0) // will need to be changed { item.Groups = itemGroups.Select(g => g.Group).ToList(); item.Specialities = itemGroups.Select(s => s.Speciality).Distinct().ToList(); item.Day = Days.Where(d => d.IsInRowRange(item.StartCellIndex, item.EndCellIndex)).Select(d => d.Day).FirstOrDefault(); item.LessonNumber = LessonNumbers.Where(l => l.IsInRowRange(item.StartCellIndex, item.EndCellIndex)).Select(s => s.LessonNumber).FirstOrDefault(); if (!item.IsMergedRows) { item.Week = Weeks.Where(w => w.IsInRowRange(item.StartCellIndex, item.EndCellIndex)).Select(w => w.Week).FirstOrDefault(); } resultList.Add(item); } } var _list = new List <ScheduleView>(); foreach (var item in Groups) { var rows = resultList.Where(r => r.Groups.Contains(item.Group)); // 57 rows for 422 group var groupedItems = rows.GroupBy(d => new { d.LessonNumber, item.Group.Name, d.Day }, (key, group) => new GroupedItem { Day = key.Day, NumberOfLesson = key.LessonNumber, GroupNumber = key.Name, Rows = group.ToList() }).ToList(); var groupLessons = ParseRows(groupedItems).ToList(); var scheduleItem = new ScheduleView { GroupName = item.Group.Name, Lessons = groupLessons }; _list.Add(scheduleItem); } //var group422 = _list.Where(u => u.GroupName == "422").FirstOrDefault(); //foreach (var item in group422.Lessons) //{ // Console.WriteLine($"{item.LessonNumber.NumberOfLesson} : {item.Lesson.Name} : {item.Teacher.Name} : {item.Auditory.Name}"); //} //Console.WriteLine($"Count {group422.Lessons.Count}"); return(_list); }
public IList <SupplementCycleWeekDTO> GetWeek(int weekNumber) { return(Weeks.Where(x => x.CycleWeekStart >= weekNumber && x.CycleWeekEnd <= weekNumber).ToList()); }