Example #1
0
        private HtmlDocument ExecuteVerify(string elem_name, string elem_id, string elem_tag)
        {
            if (this.InvokeRequired)
            {
                ExecuteVerifyDelegate d = new ExecuteVerifyDelegate(ExecuteVerify);
                return((HtmlDocument)this.Invoke(d, new object[] { elem_name, elem_id, elem_tag }));
            }
            else
            {
                if (webBrowser.Document == null)
                {
                    return(null);
                }

                foreach (HtmlElement elem in webBrowser.Document.All)
                {
                    if ((elem_name == null || elem_name == elem.Name) &&
                        (elem_id == null || elem_id == elem.Id) &&
                        (elem_tag == null || elem_tag == elem.TagName))
                    {
                        state = StateT.VerifyComplete;
                        return(webBrowser.Document);
                    }
                }

                return(null);
            }
        }
Example #2
0
        private void timoutTimer_Tick(object sender, EventArgs e)
        {
            TimeSpan ts = DateTime.Now - state_change;

            switch (state)
            {
            case StateT.IDLE:
                break;

            case StateT.WAIT_QUERY:
                response       = "";
                State          = StateT.WAIT_SUBMIT;
                webBrowser.Url = new Uri(url);
                break;

            case StateT.WAIT_SUBMIT:
                break;

            case StateT.WAIT_RESPONSE:
                if (ts.TotalSeconds > timeout)
                {
                    State = StateT.IDLE;                                // timeout
                }
                break;
            }
        }
Example #3
0
        private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            try
            {
                switch (state)
                {
                case StateT.IDLE:
                case StateT.WAIT_QUERY:
                    break;

                case StateT.WAIT_SUBMIT:
                {
                    if (set_elements.Count > 0 || invoke_elements.Count > 0)
                    {
                        State = StateT.WAIT_RESPONSE;

                        HtmlElement form = webBrowser.Document.Forms[FormId];

                        foreach (HtmlElement elem in form.All)
                        {
                            if (elem.Name != "" && set_elements.ContainsKey(elem.Name))
                            {
                                elem.SetAttribute("value", set_elements[elem.Name]);
                            }
                        }
                        foreach (HtmlElement elem in form.All)
                        {
                            if (elem.Name != "" && invoke_elements.ContainsKey(elem.Name))
                            {
                                elem.InvokeMember(invoke_elements[elem.Name]);
                            }
                        }
                    }
                    else
                    {
                        if (e.Url == webBrowser.Url)
                        {
                            response = (string)(webBrowser.DocumentText.Clone());
                            State    = StateT.IDLE;
                        }
                    }
                }
                break;

                case StateT.WAIT_RESPONSE:
                {
                    if (e.Url == webBrowser.Url)
                    {
                        response = (string)(webBrowser.DocumentText.Clone());
                        State    = StateT.IDLE;
                    }
                }
                break;
                }
            }
            catch { State = StateT.IDLE; }
        }
Example #4
0
 public void Subscribe()
 {
     RequestCount++;
     LastEventTime = DateTime.Now;
     if (PublishedFileId == default || PublishedFileId == PublishedFileId.invalid)
     {
         State = StateT.Failed;
     }
     PlatformService.workshop.Subscribe(PublishedFileId);
     State = StateT.SubSent;
 }
Example #5
0
 private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
 {
     switch (state)
     {
     case StateT.Downloading:
         if (e.Url.AbsolutePath == webBrowser.Url.AbsolutePath)
         {
             state = StateT.DownloadingComplete;
         }
         break;
     }
 }
Example #6
0
 public void UnSubscribe()
 {
     RequestCount++;
     LastEventTime = DateTime.Now;
     if (PublishedFileId == default || PublishedFileId == PublishedFileId.invalid)
     {
         State = StateT.Failed;
     }
     PlatformService.workshop.Unsubscribe(PublishedFileId);
     State = StateT.UnSubSent;
     Log.Called("unsubscribe request sent for: " + PublishedFileId);
 }
Example #7
0
 private void ExecuteOpen(string url)
 {
     if (this.InvokeRequired)
     {
         ExecuteOpenDelegate d = new ExecuteOpenDelegate(ExecuteOpen);
         this.Invoke(d, new object[] { url });
     }
     else
     {
         state          = StateT.Downloading;
         webBrowser.Url = new Uri(url);
     }
 }
Example #8
0
        public HtmlDocument GetNavigatedHtmlDocumentWithWebBrowser(HtmlElement click_elem, string elem_name, string elem_id, string elem_tag, int timeout)
        {
            // show submit-form
            // this.Invoke(new ShowDelegate(this.Show));

            RegistryKey  key      = Registry.CurrentUser.OpenSubKey(@"AppEvents\Schemes\Apps\Explorer\Navigating\.Current", true);
            HtmlDocument document = null;

            // overwrite navigating ("click") sound entry to make WebBrowser silent
            object val = key.GetValue("");

            key.SetValue("", "");

            try
            {
                // state downloading
                state = StateT.Downloading;

                // invoke click
                click_elem.InvokeMember("click");

                // wait for download to finish
                for (; timeout >= 0 && state == StateT.Downloading; timeout -= 1)
                {
                    System.Threading.Thread.Sleep(1000);
                }

                // wait for verify to return document
                for (; timeout >= 0; timeout -= 1)
                {
                    document = ExecuteVerify(elem_name, elem_id, elem_tag);
                    if (document != null)
                    {
                        break;
                    }

                    System.Threading.Thread.Sleep(1000);
                }
            }
            catch { }

            // return navigating ("click") sound entry to orignal value
            key.SetValue("", val);
            key.Close();

            // hide submit-form
            // this.Invoke(new HideDelegate(this.Hide));

            return(document);
        }
Example #9
0
        public static void Main()
        {
            var x = StateT <float, Identity <object>, float> .Return(1.0f);

            var y = StateT <int, Identity <object>, string> .Return("abc");

            var z = StateT <int, Identity <object>, string> .Bind(y, Length);

            // var zz = StateT<int, Identity<object>, int>.Run(z, 8);
            // Console.WriteLine(zz.Value);
            for (int i = 0; i < 100000; i++)
            {
                StateT <int, Identity <object>, int> .Run(z, 0);
            }
            var zz = StateT <int, Identity <object>, int> .Run(z, 0);

            var xx = StateT <float, Identity <object>, float> .Run(x, 0.1f);

            Console.WriteLine("x: {0}", xx.Value);
            Console.WriteLine("z: {0}", zz.Value);
        }
Example #10
0
 public static StateT <int, Identity <object>, int> Length(string s)
 {
     return(StateT <int, Identity <object>, int> .Return(s.Length));
 }
 public Node(StateT state)
 {
     State = state;
 }