示例#1
0
 public TenderGzwSp(string etpName, string etpUrl, int typeFz, TypeMzVoron tn, string baseurl, Arguments arg) :
     base(etpName,
          etpUrl,
          typeFz)
 {
     _tn      = tn;
     _baseUrl = baseurl;
     _arg     = arg;
 }
示例#2
0
 public TenderMzVoron(string etpName, string etpUrl, int typeFz, TypeMzVoron tn) : base(etpName, etpUrl,
                                                                                        typeFz)
 {
     _tn = tn;
 }
        protected virtual void ParsingPage(IWebElement t)
        {
            //_driver.SwitchTo().DefaultContent();
            var purName =
                t.FindElementWithoutException(By.XPath(".//span[. = 'Объект закупки']/following-sibling::span"))?.Text
                .Trim() ?? "";

            if (string.IsNullOrEmpty(purName))
            {
                purName =
                    t.FindElementWithoutException(
                        By.XPath(".//span[. = 'Объект исследования']/following-sibling::span"))?.Text
                    .Trim() ??
                    throw new Exception("cannot find purName ");
            }

            var href = t.FindElementWithoutException(By.XPath(".//span[@class = 'regnumber']/a"))?.GetAttribute("href")
                       .Trim() ??
                       throw new Exception("cannot find href");
            var purNum = t.FindElementWithoutException(By.XPath(".//span[@class = 'regnumber']/a"))?.Text.Trim() ??
                         throw new Exception("cannot find purNum ");
            var datePubT =
                t.FindElementWithoutException(By.XPath(".//span[. = 'Дата публикации']/following-sibling::span"))?.Text
                .Trim() ??
                throw new Exception("cannot find datePubT");
            var datePub = datePubT.ParseDateUn("dd.MM.yyyy");

            if (datePub == DateTime.MinValue)
            {
                datePub = datePubT.ParseDateUn("dd.MM.yyyy HH:mm");
            }

            if (datePub == DateTime.MinValue)
            {
                Log.Logger("Empty datePub");
                return;
            }

            var dateEndTt =
                t.FindElementWithoutException(By.XPath(".//span[. = 'Период подачи заявок']/following-sibling::span"))
                ?.Text.Trim() ??
                throw new Exception("cannot find dateEndT");
            var dateEndT = dateEndTt.GetDataFromRegex(@"(\d{2}\.\d{2}\.\d{4}\s*\d{2}:\d{2})$").DelDoubleWhitespace();

            if (string.IsNullOrEmpty(dateEndT))
            {
                dateEndT = dateEndTt.GetDataFromRegex(@"(\d{2}\.\d{2}\.\d{4})$").DelDoubleWhitespace();
            }

            var dateEnd = dateEndT.ParseDateUn("dd.MM.yyyy HH:mm");

            if (dateEnd == DateTime.MinValue)
            {
                dateEnd = dateEndT.ParseDateUn("dd.MM.yyyy");
            }

            if (dateEnd == DateTime.MinValue)
            {
                Log.Logger("Empty dateEnd", href);
            }

            var status =
                t.FindElementWithoutException(By.XPath(".//td/span[contains(@class, 'status')]"))?.Text.Trim() ??
                "";
            var cusName = t.FindElementWithoutException(By.XPath(".//span[@class = 'customer']/a"))?.Text.Trim() ?? "";
            var cusInn  = t.FindElementWithoutException(By.XPath(".//span[@class = 'customer']/following-sibling::span"))
                          ?.Text.Replace("ИНН", "").Trim() ?? "";
            var nmck = t.FindElementWithoutException(By.XPath(".//td/span[contains(@class, 'nmck')]"))?.Text
                       .DelAllWhitespace().Trim() ??
                       "";
            var tt = new TypeMzVoron
            {
                PurName = purName,
                PurNum  = purNum,
                CusInn  = cusInn,
                CusName = cusName,
                DatePub = datePub,
                DateEnd = dateEnd,
                Nmck    = nmck,
                Status  = status,
                Href    = href
            };

            _tendersList.Add(tt);
        }