Ejemplo n.º 1
0
        public List <ParsedSubject> SortContent(List <TmpObject> inputSubjects)
        {
            var parsedSubjects = new List <ParsedSubject>();

            foreach (var unparsedSubject in inputSubjects)
            {
                unparsedSubject.Content      = ProcessTrash(unparsedSubject);
                unparsedSubject.IsOnEvenWeek = CheckWeeks(unparsedSubject);
                if (Keywords.Scientic().Any(p => unparsedSubject.Content.Contains(p)))
                {
                    var parsedCourses = _electiveParser.Parse(unparsedSubject, ScheduleGroupType.PickedScientic);
                    parsedSubjects.AddRange(parsedCourses);
                    continue;
                }

                if (Keywords.Tech().Any(p => unparsedSubject.Content.Contains(p)))
                {
                    var parsedCourses = _electiveParser.Parse(unparsedSubject, ScheduleGroupType.PickedTech);
                    parsedSubjects.AddRange(parsedCourses);
                    continue;
                }

                if (Keywords.Lecture().Any(l => unparsedSubject.Content.Contains(l)) &&
                    !Keywords.NotLecture().Any(n => unparsedSubject.Content.Contains(n)))
                {
                    var parsedSubject = _lectureParser.Parse(unparsedSubject);
                    var marker        = SetMarker(unparsedSubject);
                    parsedSubjects.AddRange(ShareSubjects(parsedSubject, marker));
                    continue;
                }

                if (Keywords.PhysCulture().Any(p => unparsedSubject.Content.Contains(p)))
                {
                    var parsedSubject = _physCultureParser.Parse(unparsedSubject);
                    var marker        = SetMarker(unparsedSubject);
                    parsedSubjects.AddRange(ShareSubjects(parsedSubject, marker));
                    continue;
                }

                if (Keywords.English().Any(p => unparsedSubject.Content.Contains(p)))
                {
                    var engSubjects = _englishParser.Parse(unparsedSubject);
                    parsedSubjects.AddRange(engSubjects);
                    continue;
                }

                parsedSubjects.Add(_seminarParser.Parse(unparsedSubject));
            }

            return(parsedSubjects);
        }