public BrokerTableScraper(List <Import> imports, BrokerTransactionBuilder brokerTransactionBuilder, BrokerTransactionProcessor brokerTransactionProcessor, BrokerTransactionSimulator brokerTransactionSimulator, BrokerTabNavigator brokerTabNavigator, ImportProcessor importProcessor, IWebDriver webDriver) { _webDriver = webDriver; _imports = imports; _brokerTransactionBuilder = brokerTransactionBuilder; _brokerTransactionProcessor = brokerTransactionProcessor; _brokerTransactionSimulator = brokerTransactionSimulator; _brokerTabNavigator = brokerTabNavigator; _importProcessor = importProcessor; }
/// <summary> /// /// </summary> /// <returns></returns> public TaskResult Scrape(TransactionParameter transactionParameter, List <Import> batch, IWebDriver webDriver) { try { var loginNavigator = new LoginNavigator(webDriver); loginNavigator.Navigate(); var loginSimulator = new LoginSimulator(webDriver, transactionParameter); loginSimulator.Simulate(); Logger.Info("initiating broker navigator"); var brokerTabNavigator = new BrokerTabNavigator(webDriver); Logger.Info("broker navigation in progress"); brokerTabNavigator.Navigate(); Logger.Info("initiating table scraper"); var brokerTableScraper = new BrokerTableScraper(batch.ToList(), new BrokerTransactionBuilder(), new BrokerTransactionProcessor(_brokerTransactionRepository), new BrokerTransactionSimulator(webDriver), brokerTabNavigator, _importProcessor, webDriver); brokerTableScraper.Scrape(transactionParameter); } catch (Exception e) { Logger.Error(e); if (e.Message.Contains("Back-office is currently updating")) { throw new BackOfficeOfflineException("back office exception detected", e); } } var taskResult = new TaskResult { IsSuccessful = true }; taskResult.SetData(webDriver); return(taskResult); }