public ITcpFrame PerformService(ILogger logger, IAppDocument iAppDocument) { AppDocument appDocument; appDocument = ( AppDocument )iAppDocument; MainForm mainForm = appDocument.MainForm; // Start the browser. MainForm.StartBrowserFormDelegate startBrowserFormDelegate; startBrowserFormDelegate = new MainForm.StartBrowserFormDelegate(mainForm.StartBrowserForm); BrowserForm browserForm = ( BrowserForm )mainForm.Invoke(startBrowserFormDelegate); // Decode the request and generate a response. ITcpFrame responseFrame = BuildResponse(browserForm); // Stop the browser. MainForm.StopBrowserFormDelegate stopBrowserFormDelegate; stopBrowserFormDelegate = new MainForm.StopBrowserFormDelegate(mainForm.StopBrowserForm); object[] args = new object[1]; args[0] = browserForm; bool isRemoved = ( bool )mainForm.Invoke(stopBrowserFormDelegate, args); // Return the framed results. return(responseFrame); }
public string NavigateToBlank(BrowserForm browserForm) { string url = GeneralClassLibrary.Constants.BlankPageSite; string result = this.NavigteToUrl(browserForm, url); return(result); }
public bool StopBrowserForm(BrowserForm browserForm) { bool isRemove; // The lists are protected by a lock. isRemove = AppDocument.StopBrowserForm(browserForm); return(isRemove); }
public string NavigteToUrl(BrowserForm browserForm, string url) { BrowserForm.BrowserWorkDelegate browserWorkDelegate; browserWorkDelegate = new BrowserForm.BrowserWorkDelegate(browserForm.BrowserWork); object[] args = new object[1]; args[0] = url; string result = ( string )browserForm.Invoke(browserWorkDelegate, args); return(result); }
public bool StopBrowserForm(BrowserForm browserForm) { bool isRemove; lock ( BrowserFormCollection ) { isRemove = BrowserFormCollection.ActiveBrowserForms.Remove(browserForm); browserForm.Hide(); if (BrowserFormCollection.PoolBrowserForms.Count > Properties.Settings.Default.SizeBrowserPool) { // When a form is closed, all resources created within the object are closed and the form is disposed. browserForm.Close(); } else { BrowserFormCollection.PoolBrowserForms.Push(browserForm); } } return(isRemove); }
public ITcpFrame BuildResponse(BrowserForm browserForm) { XmlPageRequestBody xmlPageRequestBody; XmlPageRequestFrame xmlPageRequestFrame; xmlPageRequestFrame = XmlPageRequestFrame; xmlPageRequestBody = xmlPageRequestFrame.XmlPageRequestBody; RequestResponseFrame responseFrame; NavigateAndSync(browserForm, xmlPageRequestBody); //string search = xmlPageRequestBody.ReceiveSearch; // Wait until all navigation results are completed. BrowserDocument browserDocument = browserForm.BrowserDocument; browserDocument.NavigateManualResetEvent.WaitOne(); // Get the results of navigation string domText = browserDocument.DomText; string xmlText = browserDocument.XmlText; List <string> textList = new List <string> { domText, xmlText, browserDocument.DomContentOnly(), browserDocument.XmlContentOnly() }; // Frame the results. XmlPageReplyFrame xmlPageReplyFrame = new XmlPageReplyFrame(textList); responseFrame = new RequestResponseFrame(xmlPageReplyFrame.ToByteArray()); // Navigate to a blank page so the pool of browsers remains quiet. NavigateToBlank(browserForm); return(responseFrame); }
public BrowserForm StartBrowserForm(MainForm mainForm) { BrowserForm browserForm; lock ( BrowserFormCollection ) { if (BrowserFormCollection.PoolBrowserForms.Count > 0) { browserForm = BrowserFormCollection.PoolBrowserForms.Pop(); } else { // Create a modeless window. browserForm = new BrowserForm(this) { Owner = mainForm }; } browserForm.Show(); BrowserFormCollection.ActiveBrowserForms.Add(browserForm); } return(browserForm); }
public string NavigateAndSync(BrowserForm browserForm, XmlPageRequestBody xmlPageRequestBody) { string result = this.NavigteToUrl(browserForm, xmlPageRequestBody.ReceiveUrl); return(result); }