Example #1
0
        public ParsedSubject Parse(TmpObject input)
        {
            switch (input.Time)
            {
            case "08.30-10.00":
                input.Time = "8.00-9.30";
                break;

            case "10.10-11.40":
                input.Time = "10.05-11.35";
                break;

            case "11.50-13.20":
                input.Time = "12.00-13.30";
                break;

            case "15.20-16.50":
                input.Time = "16.00-17.30";
                break;
            }
            var parsedSubject = new ParsedSubject
            {
                Cabinet     = "",
                Notation    = "",
                SubjectName = "Физическая культура",
                Time        = input.Time,
                Group       = input.Group
            };

            return(parsedSubject);
        }
Example #2
0
        public IEnumerable <ParsedSubject> Parse(TmpObject input, ScheduleGroupType groupType)
        {
            var result = new List <ParsedSubject>();

            input.Content = input.Content
                            .Replace("Курс по выбору :", "")
                            .Replace("Курс по выбору:", "")
                            .Replace("Курс по выбору :   ,", "");
            var subjects        = input.Content.Split(',');
            var lastSubjectName = "";

            foreach (var subject in subjects)
            {
                var notation  = "";
                var fixedName = "";
                if (subject.Contains("("))
                {
                    notation  = "(" + subject.Split('(', ')')[1] + ")";
                    fixedName = subject.Replace(notation, "");
                }
                else
                {
                    fixedName = subject;
                }

                fixedName = Regex.Match(fixedName, @"[А-ЯA-Z].*").Value;
                var cabinet = Regex.Match(fixedName, @"\d+").Value;
                var teacher = Regex.Match(fixedName, @"[А-Я][а-я]+\s?[А-Я].[А-Я]?.?").Value;

                var subjectName = fixedName
                                  .Replace(teacher, "")
                                  .Replace(cabinet, "")
                                  .Replace("()", "")
                                  .Replace("  ", "")
                                  .Replace("\t", "");
                subjectName = Regex.Replace(subjectName, @"[\d]", string.Empty);
                var parsedSubject = new ParsedSubject
                {
                    SubjectName = subjectName,
                    Time        = input.Time,
                    Cabinet     = cabinet,
                    Teacher     = teacher,
                    Type        = groupType,
                    Course      = input.Course,
                    Notation    = notation
                };
                if (parsedSubject.SubjectName.Length < 2)
                {
                    parsedSubject.SubjectName = lastSubjectName;
                }
                else
                {
                    lastSubjectName = subjectName;
                }
                result.Add(parsedSubject);
            }

            return(result);
        }
Example #3
0
        private IEnumerable <ParsedSubject> ShareSubjects(ParsedSubject parsedSubject, Tuple <int, int> marker)
        {
            var group          = parsedSubject.Group.Substring(0, parsedSubject.Group.Length - 1);
            var sharedSubjects = new List <ParsedSubject>();

            for (var i = marker.Item1; i <= marker.Item2; i++)
            {
                sharedSubjects.Add(new ParsedSubject
                {
                    Cabinet     = parsedSubject.Cabinet,
                    Group       = group + i,
                    Notation    = parsedSubject.Notation,
                    SubjectName = parsedSubject.SubjectName,
                    Teacher     = parsedSubject.Teacher,
                    Time        = parsedSubject.Time
                });
            }

            return(sharedSubjects);
        }
Example #4
0
        public ParsedSubject Parse(TmpObject input)
        {
            var initialsCounter = 0;
            var parsedSubject   = new ParsedSubject
            {
                Cabinet      = "",
                Notation     = "",
                SubjectName  = "",
                Teacher      = "",
                Time         = input.Time,
                Group        = input.Group,
                IsOnEvenWeek = input.IsOnEvenWeek
            };
            var notationCheck  = false;
            var upperCaseCheck = false;
            var i = 0;

            foreach (var c in input.Content)
            {
                i++;
                if (c.Equals('('))
                {
                    notationCheck = true;
                }
                if (i > 1)
                {
                    if (char.IsUpper(c))
                    {
                        upperCaseCheck = true;
                    }
                }
                if (char.IsNumber(c) && parsedSubject.Cabinet.Length < 4 && notationCheck == false
                    )
                {
                    parsedSubject.Cabinet += c;
                }
                else
                {
                    if (upperCaseCheck == false)
                    {
                        parsedSubject.SubjectName += c;
                    }
                    else if (notationCheck)
                    {
                        parsedSubject.Notation += c;
                    }
                    else if (initialsCounter < 3)
                    {
                        parsedSubject.Teacher += c;
                        if (char.IsUpper(c))
                        {
                            initialsCounter++;
                        }
                    }
                }

                if (c.Equals(')'))
                {
                    notationCheck = false;
                }
            }

            parsedSubject.Teacher += ".";
            return(parsedSubject);
        }
Example #5
0
        public ParsedSubject Parse(TmpObject input)
        {
            int  i = 0, fmCheck = 0, cabCount = 0;
            bool upCheck = false, notationCheck = false;
            var  parsedSubject = new ParsedSubject
            {
                Cabinet      = "",
                Notation     = "",
                SubjectName  = "",
                Teacher      = "",
                Time         = input.Time,
                Group        = input.Group,
                IsOnEvenWeek = input.IsOnEvenWeek
            };

            foreach (var c in input.Content)
            {
                i++;
                if (c.Equals('('))
                {
                    notationCheck = true;
                }
                if (i > 1)
                {
                    if (char.IsUpper(c))
                    {
                        upCheck = true;
                    }
                }
                if (char.IsNumber(c) && cabCount < 4 && notationCheck == false)
                {
                    #region tin

                    if (cabCount == 1 && !c.Equals('3'))
                    {
                        cabCount++;
                    }
                    parsedSubject.Cabinet += c;
                    if (parsedSubject.Cabinet.Equals("140"))
                    {
                        cabCount--;
                    }
                    if (parsedSubject.Cabinet.Equals("115"))
                    {
                        parsedSubject.Cabinet = "1508";
                    }
                    cabCount++;

                    #endregion
                }
                else
                {
                    if (!upCheck)
                    {
                        parsedSubject.SubjectName += c;
                    }
                    else if (notationCheck)
                    {
                        parsedSubject.Notation += c;
                    }
                    else if (fmCheck < 3)
                    {
                        parsedSubject.Teacher += c;
                        if (char.IsUpper(c))
                        {
                            fmCheck++;
                        }
                    }
                }

                if (c.Equals(')'))
                {
                    notationCheck = false;
                }
            }

            return(parsedSubject);
        }