/// <summary> /// Внедряет зависимости для работы главной формы приложения. /// </summary> /// <param name="processor">Обеспечивает сбор новости с риа ру.</param> /// <param name="reader">Интерфейс, позволяющий считывать хранимые страницы.</param> /// <param name="watcher">Интерфейс, предоставляющий список названий страниц.</param> internal void InjectDependencies(RiaPageProcessor processor, IPageModelReader reader, IResultWatcher watcher) { _processor = processor; _reader = reader; _watcher = watcher; FillPageList(); }
/// <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); }
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; } } }