private static Type GetChallengeTypeForDate(string date) { int year = 0; int day = 0; string[] parts = date.Split('.'); if (parts.Length == 1) { year = GetDefaultYear(); int.TryParse(parts[0], out day); } else { int.TryParse(parts[0], out year); int.TryParse(parts[1], out day); } Type type = ChallengeManager.GetType(year, day); if (type == null) { Console.WriteLine($"Challenge not found for {year}.{day}"); } return(type); }
private static void RunMode(string date) { Type type = (date == null ? GetMostRecentChallengeType() : GetChallengeTypeForDate(date)); if (type != null) { ChallengeManager.Run(type); } }
private static int GetMostRecentChallengeDay() { int year = GetDefaultYear(); for (int day = GetDefaultDay(); day >= 1; day--) { Type type = ChallengeManager.GetType(year, day); if (type != null) { return(day); } } Console.WriteLine($"No challenges found in {year}"); return(0); }
private static void CreateNextChallenge(string yearStr) { if (!int.TryParse(yearStr, out int year)) { year = GetDefaultYear(); } int day = 1; while (ChallengeManager.GetType(year, day) != null) { day++; } if (day > 25) { Console.WriteLine($"All {year} challenges already exist"); return; } ChallengeManager.Create(year, day); Console.WriteLine($"Created {year}.{day} challenge"); }
private static void TestRange(Range years, Range days) { for (int year = years.min; year <= years.max; year++) { bool wasYearHeaderDrawn = false; Console.ForegroundColor = ConsoleColor.Yellow; for (int day = days.min; day <= days.max; day++) { Type type = ChallengeManager.GetType(year, day); if (type == null) { continue; } if (!wasYearHeaderDrawn) { wasYearHeaderDrawn = true; Console.WriteLine($"-- {year} --"); } ChallengeManager.Test(type); } } }