Esempio n. 1
0
        private static void Main()
        {
            _consoleManager       = new ConsoleManager();
            _excelLogger          = new ExcelLogger();
            _filePerVehicleLogger = new FilePerVehicleLogger(_consoleManager);
            _htmlLogger           = new HtmlLogger(_filePerVehicleLogger, _consoleManager);
            _jsonLogger           = new JsonLogger(_filePerVehicleLogger, _consoleManager);
            _webCrawler           = new WebCrawler(_consoleManager);
            _stringHelper         = new StringHelper();
            _logger              = new Logger(_jsonLogger, _htmlLogger, _stringHelper, _consoleManager);
            _dataProcessor       = new DataProcessor(_consoleManager, _stringHelper, _webCrawler, _excelLogger, _logger);
            _groundForcesScraper = new GroundForcesScraper(_webCrawler);

            try
            {
                OverallStopwatch.Start();

                _consoleManager.WriteProgramTitleVersionAndInitialBlurb();
                _consoleManager.WriteInputInstructionsAndAwaitUserInput(ConsoleColor.Yellow, ConsoleKey.Enter, "Press ENTER to begin.");

                // Load Wiki Home page
                HtmlDocument groundForcesWikiHomePage = _groundForcesScraper.GetGroundForcesWikiHomePage();

                // Crawl ground forces
                // TODO: Some of these parameters can be moved into DataProcessor as they aren't used again
                _dataProcessor.CrawlWikiSectionPagesForData(groundForcesWikiHomePage);

                OverallStopwatch.Stop();

                TimeSpan elapsedTime = OverallStopwatch.Elapsed;

                // TODO: Add console manage method for this
                _consoleManager.WriteTextLine($"Completed in {elapsedTime.Hours:00}:{elapsedTime.Minutes:00}:{elapsedTime.Seconds:00}");
                _consoleManager.WriteExitInstructions();
            }
            catch (Exception ex)
            {
                _consoleManager.WriteException($"The following exception was encounted: {ex.Message}\r\nException details: {ex.StackTrace}");
            }
        }