internal static void HookEventsForUserControlInitialization(Page page, Container container)
            {
                var initializer = new PageInitializer(page, container);

                page.PreInit += initializer.PreInit;
                page.PreLoad += initializer.PreLoad;
            }
 private void InitializeHttpHandler(IHttpHandler handler)
 {
     InitializeInstance(handler);
     if (handler is Page)
     {
         PageInitializer.HookEventsForUserControlInitialization((Page)handler);
     }
 }
Esempio n. 3
0
        internal Page(ConnectionScope scope, string guid, PageInitializer initializer)
        {
            _scope   = scope;
            _channel = new PageChannel(guid, scope, this);

            MainFrame      = initializer.MainFrame.Object;
            MainFrame.Page = this;
            _frames.Add(MainFrame);
            _viewportSize = initializer.ViewportSize;
        }
 private void InitializePageUserControls(Page page)
 {
     PageInitializer.HookEventsForUserControlInitialization(page, this.container);
 }
            internal static void HookEventsForUserControlInitialization(Page page, Container container)
            {
                var initializer = new PageInitializer(page, container);

                page.PreInit += initializer.PreInit;
                page.PreLoad += initializer.PreLoad;
            }
Esempio n. 6
0
        private static void Main()
        {
            //Attempt to change the app.config at run time to set the ChromeUserDataDirectory to the user's path via Environment.UserName
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            config.AppSettings.Settings["ChromeUserDataDirectory"].Value = $"C:\\Users\\{Environment.UserName}\\AppData\\Local\\Google\\Chrome\\User Data";
            config.Save(ConfigurationSaveMode.Modified);

            _handler = ConsoleEventCallback;
            SetConsoleCtrlHandler(_handler, true);
            var chromeDriverTerminator    = new ChromeDriverTerminator();
            var chromeDriverCreator       = new ChromeDriverCreator();
            var internetConnectionChecker = new InternetConnectionChecker();
            SpeechRecognitionEngine speechRecognitionEngine = new SpeechRecognitionEngine(SpeechRecognitionEngine.InstalledRecognizers().First(x => x.Culture.ToString() == "en-US"));
            var voiceListener = new VoiceListener(speechRecognitionEngine);

            chromeDriverTerminator.TerminateAll();
            _driver = chromeDriverCreator.Create(ConfigurationManager.AppSettings["ChromeUserDataDirectory"]);
            var pingPlotterWindowStateChanger = new PingPlotterWindowStateChanger(new WindowStateChanger());
            var tabLoader       = new TabLoader(_driver, pingPlotterWindowStateChanger);
            var pageInitializer = new PageInitializer(_driver);
            var tabSwitcher     = new TabSwitcher(voiceListener, _driver);

            _tourGuide = new TourGuide(internetConnectionChecker, tabLoader, pageInitializer, pingPlotterWindowStateChanger, tabSwitcher);
            var pages = Pages.OrderBy(x => "https://reg.usps.com/entreg/LoginAction_input?app=Phoenix&appURL=https://informeddelivery.usps.com".Equals(x.Url) ? 0 : 1).ToList();

            try {
                _tourGuide.Guide(pages, _driver, OnLoadingPage, OnShowingPage, OnInitializingPage, OnExpired, OnError);

                void OnInitializingPage(int pageNumber, Page page)
                {
                    OnVerbingPage(pageNumber, page, "Initializing");
                }

                void OnLoadingPage(int pageNumber, Page page)
                {
                    OnVerbingPage(pageNumber, page, "Loading");
                }

                void OnShowingPage(int pageNumber, Page page)
                {
                    OnVerbingPage(pageNumber, page, "Showing");
                }

                void OnVerbingPage(int pageNumber, Page page, string verb)
                {
                    Console.WriteLine($"{DateTime.Now}: {verb} ({pageNumber}/{pages.Count}): '{page.Url}'");
                }

                void OnExpired(Page page)
                {
                    Console.WriteLine($"{DateTime.Now}: Expired: '{page.Url}'");
                }

                void OnError(Page page, Exception exception)
                {
                    Console.WriteLine($"ERROR - {DateTime.Now}: {exception}");
                    Thread.Sleep(5000);
                }
            }
            catch (Exception e) {
                Console.WriteLine($"Program {DateTime.Now}: {e}");
                Thread.Sleep(20000);
                ConsoleEventCallback(CtrlCloseEvent);
                Environment.Exit(1);
            }
        }