Example #1
0
        /// <summary>
        /// Инициализирует главную форму приложения и её зависимости.
        /// </summary>
        public void Initialize()
        {
            var dataDownloaded = new DataDownloader();
            var htmlParser     = new HtmlParser();

            IPageSaver       pageSaver;
            IPageModelReader reader;
            IResultWatcher   watcher;

            if (bool.Parse(ConfigurationManager.AppSettings["UseSqlite"]))
            {
                var dbAccessor = new DbAccessor();
                dbAccessor.Initialize(new DbConfiguration {
                    DataSource = ConfigurationManager.AppSettings["SqliteDbPath"]
                });
                pageSaver = new DbPageSaver(dbAccessor);
                reader    = new PageModelFromDbReader(dbAccessor);
                watcher   = new ResultDbWatcher(dbAccessor);
            }
            else
            {
                var path = ConfigurationManager.AppSettings["JsonDirPath"];

                var jsonPageSaver = new JsonPageSaver();
                jsonPageSaver.Initialize(path);
                pageSaver = jsonPageSaver;

                var jsonConverter = new PageModelFromJsonReader();
                jsonConverter.Initialize(path);
                reader = jsonConverter;

                var jsonWatcher = new ResultDirectoryWatcher();
                jsonWatcher.Initialize(path);
                watcher = jsonWatcher;
            }

            var processor = new RiaPageProcessor(dataDownloaded, htmlParser, pageSaver);

            MainForm = new MainForm();
            MainForm.InjectDependencies(processor, reader, watcher);
        }
Example #2
0
        public static void Main()
        {
            Console.WriteLine("Enter the path to the directory:");
            var path = Console.ReadLine();

            var dataDownloaded = new DataDownloader();
            var htmlParser     = new HtmlParser();
            var jsonPageSaver  = new JsonPageSaver();

            jsonPageSaver.Initialize(path);

            var processor = new RiaPageProcessor(dataDownloaded, htmlParser, jsonPageSaver);

            while (true)
            {
                try
                {
                    Console.WriteLine("Enter your link to ria.ru:");
                    var url = Console.ReadLine();
                    Console.WriteLine();
                    Console.WriteLine();

                    processor.ProcessPage(url);

                    Console.WriteLine("Press Y to continue or N to close: ");
                    Console.WriteLine();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                if (Console.ReadKey(true).Key != ConsoleKey.Y)
                {
                    break;
                }
            }
        }