コード例 #1
0
ファイル: Schedule.cs プロジェクト: vasiokp/ScheduleParser
        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);
        }
コード例 #2
0
 public IList <SupplementCycleWeekDTO> GetWeek(int weekNumber)
 {
     return(Weeks.Where(x => x.CycleWeekStart >= weekNumber && x.CycleWeekEnd <= weekNumber).ToList());
 }