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); }
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); }
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); }
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); }
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); }