示例#1
0
        internal LoginView()
        {
            _presenter = new LoginPresenter(this);
            _navigator = new LoginNavigator();

            InitializeComponent();

            MessagingCenter.Subscribe <string>(this, "OAuthUrl", (args) =>
            {
                _presenter.HandleOAuth(args);
            });
        }
        /// <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);
        }