private static PairFrequency CalculateDefinedDate(string content, int firstWeek, out string reducedText) { var days = PartParseHelper.GetEntries(content, new[] { DefinedDatePattern }).ToList(); if (!days.Any()) { throw new Exception("Не найдено ни одной определенной даты."); } reducedText = PartParseHelper.RemoveEntries(content, DefinedDatePattern, NumeratorPattern, DenominatorPattern); var firstDate = days.First().Groups[0].Value; var weekNumber = (GetWeekNumber(firstDate) - firstWeek) / 4; switch (weekNumber) { case 0: return(PairFrequency.Numerator1); case 1: return(PairFrequency.Denominator1); case 2: return(PairFrequency.Numerator2); default: return(PairFrequency.Denominator2); } }
private static PairFrequency ParseFrequency(string content, out string reducedText) { bool isNumerator = PartParseHelper.CheckEntry(content, NumeratorPattern); bool isDenominator = PartParseHelper.CheckEntry(content, DenominatorPattern); reducedText = PartParseHelper.RemoveEntries(content, NumeratorPattern, DenominatorPattern); if (isNumerator && isDenominator) { throw new NotImplementedException("Парсинг пары с числителем и знаменателем не поддерживается."); } if (isNumerator) { return(PairFrequency.EveryNumerator); } if (isDenominator) { return(PairFrequency.EveryDenominator); } return(PairFrequency.EveryWeek); }
private static string RemoveRoom(string content) { return(PartParseHelper.RemoveEntries(content, Pattern)); }