예제 #1
0
        void f_link_items_selectIndexChange(object sender, EventArgs e)
        {
            var it = m_link_items_listBox.SelectedItem as Tuple <string, string>;

            if (it != null &&
                dicHtml.ContainsKey(it.Item1))
            {
                m_url_textBox.Text = it.Item1;
                string val;
                dicHtml.TryGetValue(it.Item1, out val);
                f_browser_loadHTML(it.Item2, val);
            }
        }
예제 #2
0
파일: JobLink.cs 프로젝트: git-thinh/appie
        public void f_runLoop(object state, bool timedOut)
        {
            if (!_inited)
            {
                _inited = true;
                f_Init();
                return;
            }

            JobInfo ti = (JobInfo)state;

            if (!timedOut)
            {
                // Tracer.WriteLine("J{0} executes on thread {1}: SIGNAL -> STOP ...", Id, Thread.CurrentThread.GetHashCode().ToString());
                ti.f_stopJob();
                return;
            }

            // Tracer.WriteLine("J{0} executes on thread {1}:DO SOMETHING ...", Id, Thread.CurrentThread.GetHashCode().ToString());
            // Do something ...

            if (msg.Count > 0)
            {
                Message m = msg.Dequeue(null);
                if (m != null)
                {
                    switch (m.getAction())
                    {
                    case MESSAGE_ACTION.ITEM_SEARCH:
                        #region
                        if (true)
                        {
                            oLink[] a = new oLink[] { };
                            if (m.Input != null)
                            {
                                string key = m.Input as string;
                                a = list.Where(x => x.Link.Contains(key) || x.Title.Contains(key) || x.Tags.Contains(key), false, int.MaxValue);
                                m.Output.Counter = a.Length;
                            }
                            else
                            {
                                a = list.Take(10).ToArray();
                                m.Output.Counter = list.Count;
                            }

                            m.Type    = MESSAGE_TYPE.RESPONSE;
                            m.JobName = this._groupName;

                            m.Output.Ok         = true;
                            m.Output.PageSize   = 10;
                            m.Output.PageNumber = 1;
                            m.Output.Total      = list.Count;
                            m.Output.SetData(a);

                            this.StoreJob.f_responseMessageFromJob(m);
                        }
                        #endregion
                        break;

                    case MESSAGE_ACTION.URL_REQUEST_CACHE:
                        #region
                        if (m.Input != null)
                        {
                            string url = m.Input as string;
                            if (urlData.ContainsKey(url))
                            {
                                string htm = urlData[url];

                                m.Type    = MESSAGE_TYPE.RESPONSE;
                                m.JobName = this._groupName;

                                m.Output.Ok = true;
                                m.Output.SetData(htm);

                                this.StoreJob.f_responseMessageFromJob(m);
                            }
                            else
                            {
                                UrlService.GetAsync(url, m, UrlService.Func_GetHTML_UTF8_FORMAT_BROWSER, (result) =>
                                {
                                    if (result.Ok)
                                    {
                                        string htm = result.Html;
                                        if (!urlData.ContainsKey(url))
                                        {
                                            urlData.Add(url, htm);
                                        }

                                        m.Type    = MESSAGE_TYPE.RESPONSE;
                                        m.JobName = this._groupName;

                                        m.Output.Ok = true;
                                        m.Output.SetData(htm);

                                        this.StoreJob.f_responseMessageFromJob(m);
                                    }
                                });
                            }
                        }
                        #endregion
                        break;
                    }
                }
            }
        }