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); }
private string ProcessTrash(TmpObject input) { return(input.Content .Replace("на Кремлёвской 35", "(на Кремлёвской 35)") .Replace("( Введение в исскуственный интеллект)", "Введение в исскуственный интеллект") .Replace("Основы правоведения и противодействия коррупции Хасанов Р.А. ч.н.1308 для гр.11-508 ,", "") .Replace("д.гл.(прак.)", "") .Replace("гр.1", "") .Replace("гр.2", "") .Replace("Технологии Net- д.гл.Гумеров К.", "Технологии Net Гумеров К.А.") .Replace("1310- 1311", "1310") .Replace("Кугуракова В В.", "Кугуракова В.В.") .Replace("корпоротивных", "корпоративных") .Replace("М. 13", "М.Р. 13") .Replace("ХайруллинА.Ф.", "Хайруллин А.Ф.") .Replace("Костюк Д.", "Костюк Д.И.") .Replace("исскуственный", "искусственный") .Replace("Закиров Л.в 18.00 в 1508 ( 18 н. лекц.)", "Закиров Л.А. 1508") .Replace("Закиров Л.Практика по ч.н.( 9н.) 1508", "Закиров Л.А. 1508 ( 9н. Практика по ч.н.)") .Replace("Курс по выбору : ,Введение в теорию и практику", "Курс по выбору : Введение в теорию и практику") .Replace( "Проектный практикум( рас LAB), Курс по выбору: Разработка корпоративных приложений Сидиков М.Р. в 1302", "Курс по выбору: Разработка корпоративных приложений Сидиков М.Р. в 1302")); }
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 bool?CheckWeeks(TmpObject inputSubject) { if (inputSubject.Content.Contains("н.н")) { return(false); } if (inputSubject.Content.Contains("ч.н")) { return(true); } return(null); }
private Tuple <int, int> SetMarker(TmpObject unparsedObject) { if (unparsedObject.Content.Contains("Абрамский")) { if (unparsedObject.Group.StartsWith("11-7")) { return(new Tuple <int, int>(1, 5)); } if (unparsedObject.Group.StartsWith("11-6")) { return(new Tuple <int, int>(1, 5)); } } if (unparsedObject.Content.Contains("Марченко")) { if (unparsedObject.Group.StartsWith("11-7")) { return(new Tuple <int, int>(6, 9)); } if (unparsedObject.Group.StartsWith("11-6")) { return(new Tuple <int, int>(6, 8)); } } if ((unparsedObject.Content.Contains("Макаев") || unparsedObject.Content.Contains("Мартынова")) && unparsedObject.Group.StartsWith("11-7") && !unparsedObject.Content.Contains("Переточкина")) { return(new Tuple <int, int>(1, 5)); } if (unparsedObject.Content.Contains("Переточкина") && unparsedObject.Group.StartsWith("11-7")) { return(new Tuple <int, int>(6, 9)); } if (unparsedObject.Group.StartsWith("11-7")) { return(new Tuple <int, int>(1, 9)); } return(new Tuple <int, int>(1, 8)); }
public IEnumerable <ParsedSubject> Parse(TmpObject input) { var result = new List <ParsedSubject>(); input.Content = input.Content .Replace("Иностранный язык (английский язык) \r\n ", "") .Replace("Иностранный язык (английский язык) \n", "") .Replace("Иностранный язык ( английский язык)", "") .Replace(" ", ""); var subjects = input.Content.Split(','); foreach (var subject in subjects) { try { var cabinet = Regex.Match(subject, @"\d+").Value; var teacher = subject.Replace(cabinet, ""); var flow = input.Group[input.Group.Length - 1] == '1' ? 1 : 2; result.Add(new ParsedSubject { SubjectName = "Иностранный язык", Time = input.Time, Cabinet = cabinet, Teacher = teacher, Type = ScheduleGroupType.Eng, Group = input.Group, Flow = flow, Course = input.Course }); } catch (Exception e) { logger?.LogError(e, "Error while eng parse: {0}", JsonConvert.SerializeObject(subject)); } } return(result); }
public ParsedSubject Parse(TmpObject input) { return(new ParsedSubject()); }
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); }