Example #1
0
        static void Main(string[] args)
        {
            var       dbContext     = new CapitalCityDbContext();
            const int numberToStudy = 10;
            IReviewManager <CapitalCity> reviewManager = new ReviewManager <CapitalCity>(numberToStudy, 20);
            ConsoleKeyInfo nextAction = new ConsoleKeyInfo();

            while (nextAction.Key != ConsoleKey.X)
            {
                Console.Write("Press a key to [S]tudy, [T]est, or E[x]it");
                var capitalCities = dbContext.CapitalCities;
                var studyCities   = reviewManager.GetCurrent(capitalCities);
                nextAction = Console.ReadKey();
                Console.WriteLine();

                if (nextAction.Key == ConsoleKey.S)
                {
                    foreach (var c in studyCities)
                    {
                        Console.WriteLine($"{c.Country}:\t{c.Capital}");
                    }
                }

                if (nextAction.Key == ConsoleKey.T)
                {
                    var answers = new string[numberToStudy];
                    var index   = 0;
                    foreach (var c in studyCities)
                    {
                        Console.WriteLine($"{c.Country}");
                        answers[index] = Console.ReadLine();
                        index++;
                    }
                    var correctCount = reviewManager.ParseTestResults <string>(studyCities, answers, (a, c) => c.Capital.Trim() == a);

                    Console.WriteLine($"Well done, you got {correctCount} correct");
                }
                dbContext.SaveChanges();
            }
        }