public static void Main(string[] args)
        {
            Console.WriteLine("Start of program. Press any key....");
            Console.ReadKey();

            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();


            try {
                ToyOrderBook.SetupOrderLists();

                DataReader.OpenReadStream(DataReader.filePath);
                Console.WriteLine(DataReader.ReadHeaderLine());
                ToyOrderBook.AddNewOrdersToOrderBook(DataReader.ReadLinesFromStream(N_TOYS));
                DataReader.CloseReadStream();

                ElfCoordinator.HireElves(N_ELVES);

                int remainingOrders = ToyOrderBook.CountAllOrdersInBook();
                int processedOrders = 0;
                while (remainingOrders > 0)
                {
                    processedOrders++;

                    bool shouldPrint = processedOrders % 1000 == 0;
                    if (shouldPrint)
                    {
                        PrintProgress(processedOrders);
                    }

                    Elf      elf = ElfCoordinator.PickNextElf();
                    ToyOrder toy = elf.ChooseToy();
                    elf.BuildToy(toy);

                    remainingOrders = ToyOrderBook.CountAllOrdersInBook();
                }

                ToyOrderBook.PrintCompletedOrdersToConsole();
                Console.WriteLine(String.Format("Completed Toys: {0}", ToyOrderBook.completedOrders.Count));
                ToyOrder lastToy = ToyOrderBook.lastOrderCompleted;
                Console.WriteLine(String.Format("Last Toy Completed: Toy {0} completed at {1} {2}", lastToy.iD, lastToy.finishTime.ToShortDateString(), lastToy.finishTime.ToShortTimeString()));
                Console.WriteLine(String.Format("Total Minutes: {0}", CalculateTotalMinutes()));
                Console.WriteLine(String.Format("Score: {0}", CalculateScore()));

                WriteResultsFile();
            } catch (Exception ex) {
                Console.WriteLine("In 'Main()'");
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.ToString());
            }

            stopwatch.Stop();
            Console.WriteLine(String.Format("Elapsed Time: {0}", stopwatch.Elapsed.ToString()));
            Console.WriteLine("End of program.");
        }
        private static void PrintProgress(int processedOrders)
        {
            Console.WriteLine(String.Format("Toys processed: {0}  {1}", processedOrders.ToString(), CalculateFractionComplete().ToString("F2")));
            Elf firstElf = ElfCoordinator.PickFirstElf();

            Console.WriteLine(String.Format("Elf {0} productivity == {1}", firstElf.id, firstElf.productivity));
            Elf lastElf = ElfCoordinator.PickLastElf();

            Console.WriteLine(String.Format("Elf {0} productivity == {1}", lastElf.id, lastElf.productivity));
        }