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); } }
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); }
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); } }