コード例 #1
0
 private bool GetButtonByTag(InputTag tag, int button)
 {
     return((bool?)this.GetLogs(tag)
            ?.FirstOrDefault(it => (int)it.InputValue == button)
            ?.ReturnValue
            ?? false);
 }
コード例 #2
0
ファイル: WCFServer.cs プロジェクト: ts295983632/scada-system
        private void UpdateInputTagValue(InputTag tag)
        {
            switch (tag.FunctionType)
            {
            case FunctionType.Sine:
                tag.SetValue(SimulationDriver.Sine());
                break;

            case FunctionType.Cosine:
                tag.SetValue(SimulationDriver.Cosine());
                break;

            case FunctionType.Ramp:
                tag.SetValue(SimulationDriver.Ramp());
                break;

            case FunctionType.Triangle:
                tag.SetValue(SimulationDriver.Triangle());
                break;

            case FunctionType.Rectangle:
                tag.SetValue(SimulationDriver.Rectangle());
                break;

            case FunctionType.Digital:
                tag.SetValue(SimulationDriver.Digital());
                break;
            }
            PublishTagUpdated(tag);
        }
コード例 #3
0
        public void TestToString()
        {
            ParseAndAssertNodeCount(1);
            Assert.IsTrue(node[0] is InputTag, "Node 1 should be INPUT Tag");
            InputTag inputTag = (InputTag)node[0];

            Assert.AreEqual("INPUT TAG\n--------\nTYPE : text\nNAME : Google\n", inputTag.ToString(), "HTML Raw String");
        }
コード例 #4
0
        public void ToHTML()
        {
            ParseAndAssertNodeCount(1);
            Assert.IsTrue(node[0] is InputTag, "Node 1 should be INPUT Tag");
            InputTag inputTag = (InputTag)node[0];

            Assert.AreEqual("<INPUT TYPE=\"text\" NAME=\"Google\">", inputTag.ToHtml(), "HTML String");
        }
コード例 #5
0
 /// <summary>Sets up the <see cref="PowerUI.ScrollTabTag.ScrollBar"/> property.</summary>
 public void GetScrollBar()
 {
     if (ScrollBar == null)
     {
         // Get the scroll bar:
         ScrollBar = ((InputTag)(Element.parentNode.Handler));
     }
 }
コード例 #6
0
 protected void SelectFromTimePicker(InputTag timepicker, string value)
 {
     WaitForLoad();
     timepicker.Click();
     WaitForLoad();
     Keyboard.Press(Keys.Down);
     WaitForLoad();
     Find <LiTag>(string.Format("/div[@Id~'timepicker' and @visible='true']//li[@InnerText='{0}']", value)).Click();
     WaitForLoad();
 }
コード例 #7
0
        private void InputCheckRadio(InputTag submit, StreamWriter file)
        {
            var inputMethod = "\npublic void ClickCheckRadio" + submit.Id + "()\n" +
                              "{" +
                              "\n\t _" + submit.Id + ".Click();" +
                              "\n" +
                              "}\n";

            file.Write(inputMethod);
        }
コード例 #8
0
 protected void SelectFromCombo(InputTag combo, string value, Boolean onlyVisible = true)
 {
     WaitForLoad();
     combo.Click();
     WaitForLoad();
     Keyboard.Press(Keys.Down);
     WaitForLoad();
     //Find<LiTag>(string.Format("/div[@Id~'boundlist' and @visible='true']//li[@InnerText='{0}']", value)).Click();
     Find <LiTag>(string.Format("/div[@Id~'boundlist' {1}]//li[@InnerText='{0}']", value, onlyVisible ? "and @visible='true'" : "")).Click();
     WaitForLoad();
 }
コード例 #9
0
        private void InputSubmit(InputTag submit, StreamWriter file)
        {
            var inputMethod = "\npublic UnknownObjectPage ClickSubmit" + submit.Id + "()\n" +
                              "{" +
                              "\n\t _" + submit.Id + ".Click();" +
                              "\n\t return new UnknownObjectPage(_driver);" +
                              "\n" +
                              "}\n";

            file.Write(inputMethod);
        }
コード例 #10
0
        private void InputText(InputTag text, StreamWriter file)
        {
            var inputMethod = "\npublic void PopulateInputField" + text.Id + "(string textToInput)\n" +
                              "{" +
                              "\n\t _" + text.Id + ".Clear();" +
                              "\n\t _" + text.Id + ".SendKeys(textToInput);" +
                              "\n" +
                              "}\n";

            file.Write(inputMethod);
        }
コード例 #11
0
        protected bool IsVailCode(string html)
        {
            Parser   parser   = new Parser(new Lexer(html));
            NodeList nodeList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("input"), new HasAttributeFilter("id", "code_input")));

            if (nodeList != null && nodeList.Count > 0)
            {
                InputTag input = nodeList[0] as InputTag;
                return(input.GetAttribute("placeholder") == "请输入验证码");
            }
            return(false);
        }
コード例 #12
0
ファイル: IInputLogger.cs プロジェクト: mattak/Revival
 public static void AddLog(this IInputLogger logger, InputTag tag, object inputValue, object returnValue)
 {
     logger.LogMap
     .GetOrSet(tag, () => new Dictionary <int, IList <Log> >())
     .GetOrSet(logger.GetPassedFrame(), () => new List <Log>())
     .Add(new Log
     {
         Frame       = logger.GetPassedFrame(),
         InputValue  = inputValue,
         ReturnValue = returnValue
     });
 }
コード例 #13
0
        public override bool OnClick(UIEvent clickEvent)
        {
            // Get the scroll bar:
            InputTag scroll = ((InputTag)(Element.parentNode.Handler));

            // And scroll it:
            scroll.ScrollBy(-1);
            // Prevent bubbling:
            clickEvent.stopPropagation();

            return(true);
        }
コード例 #14
0
ファイル: DbForm.cs プロジェクト: ts295983632/scada-system
 private void PopulateAlarms(InputTag tag)
 {
     listViewAlarms.Items.Clear();
     foreach (var alarm in tag.Alarms)
     {
         var newItem = new ListViewItem(alarm.Id)
         {
             Tag = alarm
         };
         newItem.SubItems.Add(alarm.LowLimit.ToString(CultureInfo.CurrentCulture));
         newItem.SubItems.Add(alarm.HighLimit.ToString(CultureInfo.CurrentCulture));
         listViewAlarms.Items.Add(newItem);
     }
 }
コード例 #15
0
        /// <summary>
        /// 得到asp.net页面中的eventValidation值
        /// </summary>
        /// <param name="parser"></param>
        /// <returns></returns>
        public static string GetAspNetEventValidation(Parser parser)
        {
            string validataion = string.Empty;

            parser.Reset();
            NodeList viewNodes = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("input"), new HasAttributeFilter("name", "__EVENTVALIDATION")));

            if (viewNodes != null && viewNodes.Count > 0)
            {
                InputTag viewTag = (InputTag)viewNodes[0];
                validataion = viewTag.GetAttribute("value");
            }
            return(validataion);
        }
コード例 #16
0
        /// <summary>
        /// 得到asp.net页面中的viewState值
        /// </summary>
        /// <param name="parser"></param>
        /// <returns></returns>
        public static string GetAspNetViewState(Parser parser)
        {
            string viewState = string.Empty;

            parser.Reset();
            NodeList viewNodes = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("input"), new HasAttributeFilter("name", "__VIEWSTATE")));

            if (viewNodes != null && viewNodes.Count > 0)
            {
                InputTag viewTag = (InputTag)viewNodes[0];
                viewState = viewTag.GetAttribute("value");
            }
            return(viewState);
        }
コード例 #17
0
 /// <summary>
 /// Select Combo Box on Web page
 /// </summary>
 /// <param name="combobox">Element xpath</param>
 /// <param name="Option">Value to Select</param>
 /// <param name="ControlName">logical name of control name</param>
 public static void selectComboBoxOptionforWeb(InputTag combobox, string Option, string ControlName)
 {
     for (;;)
     {
         combobox.Focus();
         combobox.Value = "";
         combobox.PressKeys(Option);
         Delay.Seconds(2);
         Keyboard.Press("{TAB}");
         if (combobox.TagValue.Equals(Option))
         {
             break;
         }
     }
 }
コード例 #18
0
        /// <summary>
        /// Funkcja aktywuje kontrolkę datepicker'a, a następnie wybiera wskazaną datę
        /// </summary>
        /// <param name="id">identyfikator pola typu input kontrolki kalendarza</param>
        /// <param name="date">data którą chcemy wybrać</param>
        protected void WybierzZDatePicera(InputTag inputTag, string date, int firstYear = 2011, int lastYear = 2020)
        {
            DebugLog("Wybieram date : " + date);

            // Sprawdz jakiego rodzaju kontrolka kalenarza
            // Jeśli pole Input (id) nie aktywuje kontrolki kalendarza
            // trzeba ją znaleźć
            if (!inputTag.Class.Contains("x-trigger-noedit"))
            {
                var trTag  = inputTag.Parent.Parent;
                var divTag = trTag.FindSingle <DivTag>(".//td[2]/div");
                divTag.Click();
            }
            else
            {
                inputTag.Click();
            }

            string[] months    = { "Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru" };
            string[] parseDate = date.Split('.');

            // Odszukaj id kontrolki datepicker-*
            var idDatePicker = Find <DivTag>("body/div[@id~'datepicker-' and @Visible='True']").Id;

            // kliknij w selektor miesiąca
            Find <SpanTag>(string.Format("/div[#'{0}']//span[@id~'splitbutton-*' and Visible='True']", idDatePicker)).Click();

            System.Threading.Thread.Sleep(1000); // K.O - żeby się nie pogubił

            // wybierz rok
            // Uwaga, na liście lat kontrolki domyślnie są lata 2011-2020
            ShiftListYears(idDatePicker, parseDate[2], firstYear, lastYear);
            Find <ATag>(string.Format("/div[#'{0}']//div[@Id~'yearEl' and Visible='True']//a[@innertext='{1}']", idDatePicker, parseDate[2])).Click();

            // wybierz miesiąc
            Find <ATag>(string.Format("/div[#'{0}']//a[@innertext='{1}']", idDatePicker, months[int.Parse(parseDate[1]) - 1])).Click();

            // kliknij guzik OK
            Find <SpanTag>(string.Format("/div[#'{0}']//span[@InnerText ~'OK']", idDatePicker)).Click();

            System.Threading.Thread.Sleep(2000); // K.O - żeby się nie pogubił

            // wybierz dzien
            Find <ATag>(string.Format("/div[#'{0}']//table[Id~'datepicker']//td[@class~'-active' and Visible='True']/a[@innertext='{1}']", idDatePicker, int.Parse(parseDate[0]).ToString())).Click();

            WaitForLoad();
        }
コード例 #19
0
        public void ToHTML2()
        {
            string testHTML = "<INPUT type=\"checkbox\" " + "name=\"cbCheck\" checked>";

            CreateParser(testHTML);
            parser.AddScanner(new InputTagScanner("-i"));

            ParseAndAssertNodeCount(1);
            Assert.IsTrue(node[0] is InputTag, "Node 1 should be INPUT Tag");
            InputTag inputTag = (InputTag)node[0];

            AssertHelper.FoundExpectedTagAndAttributes(inputTag.ToHtml(),
                                                       "INPUT",
                                                       "TYPE=\"checkbox\"",
                                                       "CHECKED=\"\"",
                                                       "NAME=\"cbCheck\"");
        }
コード例 #20
0
ファイル: WCFServer.cs プロジェクト: ts295983632/scada-system
 private static void CheckInputTagAlarms(InputTag tag)
 {
     foreach (var alarm in tag.Alarms)
     {
         var value = tag.GetValue();
         if (value <= alarm.LowLimit)
         {
             OnAlarmTriggered(
                 $"{DateTime.Now}: {tag.Id} value {value:0.###} is lower than {alarm.Id} low limit of {alarm.LowLimit}!");
         }
         else if (value >= alarm.HighLimit)
         {
             OnAlarmTriggered(
                 $"{DateTime.Now}: {tag.Id} value {value:0.###} is higher than {alarm.Id} high limit of {alarm.HighLimit}!");
         }
     }
 }
コード例 #21
0
        /// <summary>
        /// Funkcja aktywuje kontrolkę vtimepicker'a, a następnie wybiera wskazaną datę
        /// Uwaga! brak wartości parametru czas, spowoduje wybór guzika "TERAZ"
        /// </summary>
        /// <param name="id">identyfikator pola typu input kontrolki zegara</param>
        /// <param name="czas">data którą chcemy wybrać w formacie [hh:mm]</param>
        protected void WybierzZVtimepicker(InputTag inputTag, string czas = "")
        {
            DebugLog(string.Format("Wybieram wskazany czas [hh:mm] : {0}", (czas == string.Empty ? "TERAZ" : czas)));

            var minuty  = "";
            var godziny = "";

            if (!string.IsNullOrEmpty(czas))
            {
                int min           = 0;
                int godz          = 0;
                var godzinyMinuty = czas.Split(':');
                if (int.TryParse(godzinyMinuty[0], out godz) == false || godz > 24)
                {
                    DebugLog(string.Format("Podano niepoprawną wartość dla godzin: <{0}>", godzinyMinuty[0]));
                    return;
                }

                if (int.TryParse(godzinyMinuty[1], out min) == false || min > 59)
                {
                    DebugLog(string.Format("Podano niepoprawną wartość dla minut: <{0}>", godzinyMinuty[1]));
                    return;
                }

                // Minuty modulo 5!
                minuty  = (min > 5 ? min - (min % 5) : (min % 5)).ToString().PadLeft(2, '0');
                godziny = godz.ToString().PadLeft(2, '0');
            }

            // Sprawdz jakiego rodzaju kontrolka kalenarza
            // Jeśli pole Input (id) nie aktywuje kontrolki kalendarza
            // trzeba ją znaleźć
            if (!inputTag.Class.Contains("x-trigger-noedit"))
            {
                var trTag  = inputTag.Parent.Parent;
                var divTag = trTag.FindSingle <DivTag>(".//td[2]/div");
                divTag.Click();
            }
            else
            {
                inputTag.Click();
            }

            // Odszukaj id kontrolki vtimepicker-*
            var idTimePicker = Find <DivTag>("body/div[@id~'vtimepicker-' and @Visible='True']").Id;

            System.Threading.Thread.Sleep(1000); // K.O - żeby się nie pogubił

            if (!string.IsNullOrEmpty(czas))
            {
                // wybierz godzinę
                Find <ATag>(string.Format("/div[#'{0}']//td[@class~'hours']/a[@innertext='{1}']", idTimePicker, godziny)).Click();

                // wybierz minutę - kończy działanie kontrolki
                Find <ATag>(string.Format("/div[#'{0}']//td[@class~'minutes']/a[@innertext='{1}']", idTimePicker, minuty)).Click();

                // kliknij guzik OK
                //Find<SpanTag>(string.Format("/div[#'{0}']//span[@InnerText ~'OK']", idTimePicker)).Click();
            }
            else
            {
                // kliknij guzik TERAZ
                Find <SpanTag>(string.Format("/div[#'{0}']//span[@InnerText ~'TERAZ']", idTimePicker)).Click();
            }

            System.Threading.Thread.Sleep(2000); // K.O - żeby się nie pogubił

            WaitForLoad();
        }
コード例 #22
0
		/// <summary>Sets up the <see cref="PowerUI.ScrollTabTag.ScrollBar"/> property.</summary>
		public void GetScrollBar(){
			if(ScrollBar==null){
				// Get the scroll bar:
				ScrollBar=((InputTag)(Element.parentNode.Handler));
			}
		}
コード例 #23
0
        /// <summary>
        /// Recursively evaluates the template nodes returned from the bot
        /// </summary>
        /// <param name="node">the node to evaluate</param>
        /// <param name="request">the request from the user</param>
        /// <param name="result">the result to be sent to the user</param>
        /// <param name="user">the user who originated the request</param>
        /// <returns>the output string</returns>
        private string ProcessNode(XmlNode node, Request request, Result result, User user)
        {
            StringBuilder newInnerText = new StringBuilder();

            if (node.HasChildNodes)
            {
                // recursively check
                foreach (XmlNode childNode in node.ChildNodes)
                {
                    childNode.InnerText = this.ProcessNode(childNode, request, result, user);
                }
            }

            // process the node itself
            AIMLTagHandler tagHandler = null;

            switch (node.Name.ToLower())
            {
            case "bot":
                tagHandler = new BotTag(this, user, request, result, node);
                break;

            case "condition":
                tagHandler = new ConditionTag(this, user, request, result, node);
                break;

            case "date":
                tagHandler = new DateTag(this, user, request, result, node);
                break;

            case "formal":
                tagHandler = new FormalTag(this, user, request, result, node);
                break;

            case "gender":
                tagHandler = new GenderTag(this, user, request, result, node);
                break;

            case "get":
                tagHandler = new GetTag(this, user, request, result, node);
                break;

            case "gossip":
                tagHandler = new GossipTag(this, user, request, result, node);
                break;

            case "id":
                tagHandler = new IdTag(this, user, request, result, node);
                break;

            case "input":
                tagHandler = new InputTag(this, user, request, result, node);
                break;

            case "javascript":
                tagHandler = new JavascriptTag(this, user, request, result, node);
                break;

            case "learn":
                tagHandler = new LearnTag(this, user, request, result, node);
                break;

            case "lowercase":
                tagHandler = new LowercaseTag(this, user, request, result, node);
                break;

            case "person":
                tagHandler = new PersonTag(this, user, request, result, node);
                break;

            case "person2":
                tagHandler = new Person2Tag(this, user, request, result, node);
                break;

            case "random":
                tagHandler = new RandomTag(this, user, request, result, node);
                break;

            case "sentence":
                tagHandler = new SentenceTag(this, user, request, result, node);
                break;

            case "set":
                tagHandler = new SetTag(this, user, request, result, node);
                break;

            case "size":
                tagHandler = new SizeTag(this, user, request, result, node);
                break;

            case "sr":
                tagHandler = new SrTag(this, user, request, result, node);
                break;

            case "srai":
                tagHandler = new SraiTag(this, user, request, result, node);
                break;

            case "star":
                tagHandler = new StarTag(this, user, request, result, node);
                break;

            case "system":
                tagHandler = new SystemTag(this, user, request, result, node);
                break;

            case "that":
                tagHandler = new ThatTag(this, user, request, result, node);
                break;

            case "thatstar":
                tagHandler = new ThatStarTag(this, user, request, result, node);
                break;

            case "think":
                tagHandler = new ThinkTag(this, user, request, result, node);
                break;

            case "topicstar":
                tagHandler = new TopicStarTag(this, user, request, result, node);
                break;

            case "uppercase":
                tagHandler = new UppercaseTag(this, user, request, result, node);
                break;

            case "version":
                tagHandler = new VersionTag(this, user, request, result, node);
                break;

            default:
                tagHandler = this.GetBespokeTags(user, request, result, node);
                break;
            }
            if (object.Equals(null, tagHandler))
            {
                return(node.InnerText);
            }
            else
            {
                return(tagHandler.Transform());
            }
        }
コード例 #24
0
ファイル: InviteSzBaoanJD.cs プロジェクト: SHNXJMG/Small
        protected override IList ExecuteCrawl(bool crawlAll)
        {
            IList  list            = new List <InviteInfo>();
            int    pageInt         = 1;
            string html            = string.Empty;
            string viewState       = string.Empty;
            string cookiestr       = string.Empty;
            string eventValidation = string.Empty;

            try
            {
                html = this.ToolWebSite.GetHtmlByUrl(SiteUrl, Encoding.UTF8);
            }
            catch (Exception ex)
            {
                return(list);
            }
            Parser   parser  = new Parser(new Lexer(html));
            NodeList tdNodes = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("span"), new HasAttributeFilter("class", "input-group-addon")));

            if (tdNodes != null && tdNodes.Count > 0)
            {
                try
                {
                    string reTemp   = tdNodes.AsString().GetRegexBegEnd("共", "项");
                    string pageTemp = tdNodes.AsString().GetRegexBegEnd("项", "页").GetReplace("共,项,页," + reTemp + ",,");
                    pageInt = int.Parse(pageTemp);
                }
                catch (Exception) { }
            }
            for (int i = 1; i <= pageInt; i++)
            {
                if (i > 1)
                {
                    try
                    {
                        html = this.ToolWebSite.GetHtmlByUrl(SiteUrl + "?pi=" + (i - 1), Encoding.UTF8);
                    }
                    catch { continue; }
                }

                parser = new Parser(new Lexer(html));
                NodeList nodeList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("class", "inside_table")));
                if (nodeList != null && nodeList.Count > 0)
                {
                    TableTag table = (TableTag)nodeList[0];

                    for (int j = 1; j < table.RowCount; j++)
                    {
                        string   code = string.Empty, buildUnit = string.Empty, prjName = string.Empty, prjAddress = string.Empty, inviteCtx = string.Empty, bidType = string.Empty, specType = string.Empty, beginDate = string.Empty, endDate = string.Empty, remark = string.Empty, inviteCon = string.Empty, InfoUrl = string.Empty, CreateTime = string.Empty, msgType = string.Empty, otherType = string.Empty, HtmlTxt = string.Empty;
                        TableRow tr = table.Rows[j];
                        prjName   = tr.Columns[1].ToPlainTextString().Trim();
                        buildUnit = tr.Columns[2].ToPlainTextString().Trim();
                        beginDate = tr.Columns[3].ToPlainTextString().Trim();
                        InfoUrl   = "http://www.bajsjy.com/" + tr.Columns[1].GetATagHref();
                        string htmldetail = string.Empty;
                        try
                        {
                            htmldetail = this.ToolWebSite.GetHtmlByUrl(InfoUrl, Encoding.UTF8).Replace("<th", "<td").Replace("</th>", "</td>").Replace("&nbsp;", "");
                        }
                        catch (Exception)
                        {
                            continue;
                        }
                        Parser   parserdetail   = new Parser(new Lexer(htmldetail));
                        NodeList nodeDetailList = parserdetail.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("class", "inside_table")));
                        if (nodeDetailList != null && nodeDetailList.Count > 0)
                        {
                            HtmlTxt = nodeDetailList.AsHtml();
                            TableTag tabledetail = (TableTag)nodeDetailList[0];

                            for (int r = 0; r < tabledetail.RowCount; r++)
                            {
                                TableRow trdetail = tabledetail.Rows[r];

                                for (int c = 0; c < trdetail.ColumnCount; c++)
                                {
                                    string   tr1 = string.Empty;
                                    string   tr2 = string.Empty;
                                    NodeList inptList;
                                    NodeList selList;
                                    if (trdetail.ColumnCount <= 1)
                                    {
                                        continue;
                                    }
                                    tr1 = trdetail.Columns[c].ToPlainTextString().Trim();
                                    tr2 = trdetail.Columns[c + 1].ToPlainTextString().Trim();

                                    inptList = trdetail.Columns[c + 1].SearchFor(typeof(InputTag), true);
                                    selList  = trdetail.Columns[c + 1].SearchFor(typeof(SelectTag), true);
                                    if (inptList != null && inptList.Count > 0)
                                    {
                                        if (inptList.Count > 1)
                                        {
                                            for (int inp = 0; inp < inptList.Count; inp++)
                                            {
                                                InputTag inputTage = (InputTag)inptList[inp];
                                                if (inputTage.GetAttribute("checked") == "checked")
                                                {
                                                    tr2 = inputTage.GetAttribute("value");
                                                }
                                            }
                                        }
                                        else
                                        {
                                            InputTag inputTage = (InputTag)inptList[0];
                                            tr2 = inputTage.GetAttribute("value");
                                        }
                                    }
                                    if (selList != null && selList.Count > 0)
                                    {
                                        SelectTag selTag = (SelectTag)selList[0];
                                        NodeList  opList = new NodeList();
                                        selTag.CollectInto(opList, new HasAttributeFilter("selected", "selected"));
                                        tr2 = opList.AsString();
                                    }
                                    inviteCtx += tr1 + ":" + tr2 + "\r\n";
                                    if (trdetail.ColumnCount > (c + 1))
                                    {
                                        c = c + 1;
                                    }
                                }
                            }


                            Regex regPrjAddr = new Regex(@"工程地址:[^\r\n]+\r\n");
                            prjAddress = regPrjAddr.Match(inviteCtx).Value.Replace("工程地址:", "").Trim();

                            Regex  regoType = new Regex(@"工程类型:[^\r\n]+\r\n");
                            string oType    = regoType.Match(inviteCtx).Value.Replace("工程类型:", "").Trim();

                            if (oType.Contains("房建"))
                            {
                                otherType = "房建及工业民用建筑";
                            }
                            else if (oType.Contains("市政"))
                            {
                                otherType = "市政工程";
                            }
                            else if (oType.Contains("园林绿化"))
                            {
                                otherType = "园林绿化工程";
                            }
                            else if (oType.Contains("装饰") || oType.Contains("装修"))
                            {
                                otherType = "装饰装修工程";
                            }
                            else if (oType.Contains("电力"))
                            {
                                otherType = "电力工程";
                            }
                            else if (oType.Contains("水利"))
                            {
                                otherType = "水利工程";
                            }
                            if (oType.Contains("环保"))
                            {
                                otherType = "环保工程";
                            }

                            msgType  = "深圳市建设工程交易中心宝安分中心";
                            specType = "建设工程";
                            bidType  = ToolHtml.GetInviteTypes(prjName);
                            InviteInfo info = ToolDb.GenInviteInfo("广东省", "深圳宝安区工程", "宝安区", string.Empty, code, prjName, prjAddress, buildUnit, beginDate, endDate, inviteCtx, remark, msgType, bidType, specType, otherType, InfoUrl, HtmlTxt);
                            list.Add(info);

                            if (!crawlAll && list.Count >= this.MaxCount)
                            {
                                return(list);
                            }
                        }
                    }
                }
            }
            return(list);
        }
コード例 #25
0
        protected List <QualInfo> GetQual()
        {
            List <QualInfo> quals = ToolFile.Deserialize <QualInfo>(ToolFile.WebQualPath);

            if (quals == null || quals.Count < 1)
            {
                quals = new List <QualInfo>();
                int    pageInt   = 1;
                int    totalPage = 0;
                string url       = "http://jzsc.mohurd.gov.cn/asite/qualapt/aptData?apt_type=";
                string html      = string.Empty;
                try
                {
                    html = ToolWeb.GetHtmlByUrl(url);
                }
                catch { }
                Parser   parser   = new Parser(new Lexer(html));
                NodeList pageNode = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("class", "clearfix")));
                if (pageNode != null && pageNode.Count > 0)
                {
                    try
                    {
                        string temp = pageNode.AsString().Replace(",", ",");
                        string page = temp.GetRegexBegEnd("total", ",").GetReplace("\":");
                        totalPage = int.Parse(page);
                        pageInt   = totalPage / 10 + 1;
                    }
                    catch { }
                }

                for (int i = 1; i <= pageInt; i++)
                {
                    if (i > 1)
                    {
                        NameValueCollection nvc = ToolWeb.GetNameValueCollection(new string[] {
                            "$total",
                            "$reload",
                            "$pg",
                            "$pgsz"
                        },
                                                                                 new string[] {
                            totalPage.ToString(),
                            "0",
                            i.ToString(),
                            "10"
                        });
                        try
                        {
                            html = ToolWeb.GetHtmlByUrl(url, nvc, Encoding.UTF8);
                        }
                        catch { }
                    }
                    parser = new Parser(new Lexer(html));
                    NodeList listNode = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("class", "table_box")));
                    if (listNode != null && listNode.Count > 0)
                    {
                        TableTag table = listNode[0] as TableTag;
                        for (int j = 0; j < table.RowCount - 1; j++)
                        {
                            TableRow tr = table.Rows[j];
                            parser = new Parser(new Lexer(tr.ToHtml()));
                            try
                            {
                                NodeList                    input       = parser.ExtractAllNodesThatMatch(new TagNameFilter("input"));
                                InputTag                    tag         = input[0] as InputTag;
                                string                      json        = tag.GetAttribute("value");
                                JavaScriptSerializer        serializer  = new JavaScriptSerializer();
                                Dictionary <string, object> smsTypeJson = (Dictionary <string, object>)serializer.DeserializeObject(json);
                                QualInfo                    info        = new QualInfo();
                                info.QualCode = Convert.ToString(smsTypeJson["apt_code"]);
                                info.QualName = Convert.ToString(smsTypeJson["apt_scope"]);
                                quals.Add(info);
                            }
                            catch (Exception ex)
                            {
                                Logger.Error(i);
                                Logger.Error(tr.ToHtml());
                            }
                        }
                    }
                    Thread.Sleep(1000 * 1);
                }
                quals = quals.OrderBy(x => x.QualCode).ToList();
                ToolFile.Serialize <QualInfo>(quals, ToolFile.WebQualPath);
            }


            return(quals);
        }
コード例 #26
0
 private IEnumerable <Log> GetLogs(InputTag tag)
 {
     return(this.Logger.LogMap.GetOrDefault(tag)?.GetOrDefault(this.PassedFrame));
 }
コード例 #27
0
ファイル: IInputReplayer.cs プロジェクト: mattak/Revival
 public static IEnumerable <Log> GetLogs(this IInputReplayer replayer, InputTag tag)
 {
     return(replayer.Logger.LogMap.GetOrDefault(tag)?.GetOrDefault(replayer.GetPassedFrame()));
 }