Ejemplo n.º 1
0
    public static void Main()
    {
        try
        {
            var dayTypes = AssemblyScanner.GetDayTypes();
            var years    = dayTypes.GetYears();

            while (true)
            {
                var yearNo = GetNumber(years, ConsolePrinter.PrintEnterYear);
                ConsolePrinter.PrintHeader(yearNo);
                var days = dayTypes.GetDays(yearNo);

                while (true)
                {
                    try
                    {
                        var dayNo   = GetNumber(days, ConsolePrinter.PrintEnterDay);
                        var dayType = dayTypes.First(x =>
                                                     x.Name.Contains("AoC" + yearNo) && x.Name.Contains("Day" + dayNo.ToString("00")));
                        var day       = (DayBase)Activator.CreateInstance(dayType);
                        var dayRunner = new DayRunner(day);
                        dayRunner.Run();
                    }
                    catch (TerminationRequestedException)
                    {
                        break;
                    }
                }
            }
        }
        catch (TerminationRequestedException)
        {
        }
    }