Ejemplo n.º 1
0
        private void ParsingPage(int page)
        {
            var url =
                $"https://api.onlc.ru/purchases/v1/public/procedures?sort=-id&total=true&limit=100&offset={page * 100}&include=owner&filters%5BsearchType%5D=2";
            var s = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", url);
                return;
            }

            var jObj    = JObject.Parse(s);
            var tenders = GetElements(jObj, "data");

            foreach (var t in tenders)
            {
                try
                {
                    ParserTenderObj(t);
                }
                catch (Exception e)
                {
                    Log.Logger($"Error in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                               e);
                }
            }
        }
Ejemplo n.º 2
0
        protected int MaxPage()
        {
            if (DownloadString.MaxDownload >= 1000)
            {
                return(1);
            }
            var s = DownloadString.DownLUserAgent(CurrentUrl);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("cannot get first page from EIS", CurrentUrl);
                throw new Exception("cannot get first page from EIS");
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var maxPageS =
                htmlDoc.DocumentNode.SelectSingleNode("//ul[@class = 'pages']/li[last()]/a/span")?.InnerText ?? "1";

            if (int.TryParse(maxPageS, out var maxP))
            {
                return(maxP);
            }

            return(1);
        }
Ejemplo n.º 3
0
        private void ParsingPage(string url)
        {
            var s = DownloadString.DownL(url, tryCount: 5);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", url);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//ul[contains(@class, 'search-container')]/li[contains(@class, 'search-item') and contains(@class, 'clearfix')]") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 4
0
        private void ParsingPage(string url)
        {
            var s = DownloadString.DownL1251(url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", url);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes("//ul[@class = 'tenders_list']/li[@class = 'tenders_item']") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 5
0
        private void ParsingPage(string url)
        {
            var s = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", url);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//table[contains(@class, 'contractor_search_table')]//tr[position() > 1]") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 6
0
        private void GetPage(int num)
        {
            var url =
                $"https://torgi.etpu.ru/searchServlet?query=%7B%22types%22%3A%5B%22BUYING%22%2C%22SALE%22%2C%22RFI%22%2C%22SMALL_PURCHASE%22%5D%7D&filter=%7B%22state%22%3A%5B%22ALL%22%5D%7D&sort=%7B%22placementDate%22%3Afalse%7D&limit=%7B%22min%22%3A{num}%2C+%22max%22%3A{num + 20}%7D";
            var result = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(result))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           url);
                return;
            }

            var jObj    = JObject.Parse(result);
            var tenders = GetElements(jObj, "list");

            foreach (var t in tenders)
            {
                try
                {
                    ParserTenderObj(t);
                }
                catch (Exception e)
                {
                    Log.Logger($"Error in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                               e, t.ToString());
                }
            }
        }
Ejemplo n.º 7
0
        private void ParsingPage(string url)
        {
            var s = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", url);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//div[@id = 'activeProcurements']/div[contains(@class, 'js-spoilerId')]") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 8
0
        private void GetDocuments(int idTender, MySqlConnection connect)
        {
            var s = DownloadString.DownL(_tn.Href);
            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in GetDocuments()", _tn.Href);
                return;
            }

            var htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(s);
            var docs =
                htmlDoc.DocumentNode.SelectNodes("//ul[contains(@class, 'tenders-d__list')]/li") ??
                new HtmlNodeCollection(null);
            foreach (var doc in docs)
            {
                var urlAttT = (doc.SelectSingleNode("./a")?.Attributes["href"]?.Value ?? "")
                    .Trim();
                var fName = (doc.SelectSingleNode("./p").InnerText ?? "Закупочная документация").Trim();
                var urlAtt = $"https://kzgroup.ru{urlAttT}";
                if (!string.IsNullOrEmpty(fName))
                {
                    var insertAttach =
                        $"INSERT INTO {AppBuilder.Prefix}attachment SET id_tender = @id_tender, file_name = @file_name, url = @url";
                    var cmd10 = new MySqlCommand(insertAttach, connect);
                    cmd10.Prepare();
                    cmd10.Parameters.AddWithValue("@id_tender", idTender);
                    cmd10.Parameters.AddWithValue("@file_name", fName);
                    cmd10.Parameters.AddWithValue("@url", urlAtt);
                    cmd10.ExecuteNonQuery();
                }
            }
        }
Ejemplo n.º 9
0
        private void ParsingPage()
        {
            var s = DownloadString.DownLUserAgent(_url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", _url);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//p[contains(., 'Заявки на участие')]") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 10
0
        private void GetPage(string url)
        {
            var s = DownloadString.DownLHttpPostWithCookiesAll(url, HttpsT2Federal1Ru, Cookies);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           url);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//tr[contains(@class, 'js-lot-row')]") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a, url);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 11
0
        private void Parse(string _url)
        {
            var s = DownloadString.DownLUserAgent(_url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           _url);
                return;
            }

            var jObj       = JObject.Parse(s);
            var totalCount = (int?)jObj.SelectToken("totalCount") ?? 0;

            if (_countPage == 0)
            {
                _countPage = totalCount / 50 + 1;
            }

            var tenders = GetElements(jObj, "entries");

            foreach (var t in tenders)
            {
                try
                {
                    ParserTenderObj(t);
                }
                catch (Exception e)
                {
                    Log.Logger($"Error in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                               e, t.ToString());
                }
            }
        }
Ejemplo n.º 12
0
        private void ParsingUral1()
        {
            var s = DownloadString.DownLUserAgent(_href);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           _href);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//div[@class = 'cardtender']/div") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 13
0
        private void GetPage(int num)
        {
            var s = DownloadString.DownLSber(_url, num);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           _url);
                return;
            }

            var jObj    = JObject.Parse(s);
            var tenders = GetElements(jObj, "data.list");

            foreach (var t in tenders)
            {
                try
                {
                    ParserTenderObj(t);
                }
                catch (Exception e)
                {
                    Log.Logger($"Error in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                               e);
                }
            }
        }
Ejemplo n.º 14
0
        private void ParsingPage(int i)
        {
            var currUrl = CreateCurrentUrl(CurrentUrl, i);

            if (DownloadString.MaxDownload >= 1000)
            {
                return;
            }
            var s = DownloadString.DownLUserAgent(currUrl);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", currUrl);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens = htmlDoc.DocumentNode.SelectNodes(
                "//div[contains(@class, 'search-registry-entry-block')]/div[contains(@class, 'row')][1]//a[contains(@href, 'printForm/view')]") ??
                       new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserLink(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 15
0
        private void ParsingPage(string url)
        {
            var s = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", url);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//table[@id = 'd']//tr[contains(., 'Дата начала подачи заявок:')]") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 16
0
        private void GetPage(int num)
        {
            var url =
                $"https://etp.dellin.ru/searchServlet?query={HttpUtility.UrlEncode($"{{\"types\":[\"BUYING\"]}}&filter={{\"state\":[\"GD\"]}}&sort={{\"placementDate\":false}}&limit={{\"min\":{num},\"max\":{num + 20},\"updateTotalCount\":true}}")}";
            var result = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(result))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           url);
                return;
            }

            var jObj    = JObject.Parse(result);
            var tenders = GetElements(jObj, "list");

            foreach (var t in tenders)
            {
                try
                {
                    ParserTenderObj(t);
                }
                catch (Exception e)
                {
                    Log.Logger($"Error in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                               e, t.ToString());
                }
            }
        }
Ejemplo n.º 17
0
        private void ParsingDpd()
        {
            var s = DownloadString.DownLUserAgent(_startUrl);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", _startUrl);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//a[starts-with(@href, '/tenders/index.php?r=site')]") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTendersList(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 18
0
        private void GetPage(int num)
        {
            var url =
                $"https://tenders.mts.ru/api/v1/tenders?pageSize=20&page={num}&isSubscribe=false&attributesForSort=tenders_publication_date,desc";
            var result = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(result))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           url);
                return;
            }

            var jObj    = JObject.Parse(result);
            var tenders = GetElements(jObj, "data");

            foreach (var t in tenders)
            {
                try
                {
                    ParserTenderObj(t);
                }
                catch (Exception e)
                {
                    Log.Logger($"Error in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                               e, t.ToString());
                }
            }
        }
Ejemplo n.º 19
0
        private void ParsingPage(string url)
        {
            var s = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", url);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//div[@class = 'purchase-second-line']") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 20
0
        private void ParsingPage(string url)
        {
            var s = DownloadString.DownLTektorg(url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           url);
                return;
            }

            var parser   = new HtmlParser();
            var document = parser.Parse(s);
            var tens     = document.All.Where(m => m.ClassList.Contains("section-procurement__item") && m.TagName == "DIV");

            foreach (var t in tens)
            {
                try
                {
                    ParsingTender(t, url);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 21
0
        private void ParsingPage(string url)
        {
            var s = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", url);
                return;
            }

            var parser   = new HtmlParser();
            var document = parser.Parse(s);
            var tens     = document.All.Where(m => m.Id == "pag_data").Children("tr");

            foreach (var t in tens)
            {
                try
                {
                    ParsingTender(t, url);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 22
0
        private void GetPage(int num)
        {
            var data =
                $"{{\"filter\":{{\"auctionSpecificFilter\":{{}},\"needSpecificFilter\":{{}},\"tenderSpecificFilter\":{{}}}},\"order\":[{{\"field\":\"PublishDate\",\"desc\":true}}],\"withCount\":true,\"take\":50,\"skip\":{num * 50}}}";
            var url =
                $"https://old.zakupki.mos.ru/api/Cssp/Purchase/Query?queryDto={{\"filter\":{{\"auctionSpecificFilter\":{{}},\"needSpecificFilter\":{{}},\"tenderSpecificFilter\":{{}}}},\"order\":[{{\"field\":\"PublishDate\",\"desc\":true}}],\"withCount\":true,\"take\":50,\"skip\":{num * 50}}}";

            url = Uri.EscapeUriString(url);

            var s = DownloadString.DownLHttpPostWithCookiesB2b(url, cookie: null, useProxy: AppBuilder.UserProxy);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           _url);
                return;
            }

            var jObj    = JObject.Parse(s);
            var tenders = GetElements(jObj, "items");

            foreach (var t in tenders)
            {
                try
                {
                    ParserTenderObj(t);
                }
                catch (Exception e)
                {
                    Log.Logger($"Error in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                               e, t.ToString());
                }
            }
        }
Ejemplo n.º 23
0
        public void ParsingTender()
        {
            using (var connect = ConnectToDb.GetDbConnection())
            {
                connect.Open();

                var selectTend =
                    $"SELECT id_tender FROM {AppBuilder.Prefix}tender WHERE purchase_number = @purchase_number AND doc_publish_date = @doc_publish_date AND type_fz = @type_fz AND notice_version = @notice_version AND end_date = @end_date";
                var cmd = new MySqlCommand(selectTend, connect);
                cmd.Prepare();
                cmd.Parameters.AddWithValue("@purchase_number", _tn.PurNum);
                cmd.Parameters.AddWithValue("@doc_publish_date", _tn.DatePub);
                cmd.Parameters.AddWithValue("@type_fz", TypeFz);
                cmd.Parameters.AddWithValue("@notice_version", _tn.Status);
                cmd.Parameters.AddWithValue("@end_date", _tn.DateEnd);
                var dt      = new DataTable();
                var adapter = new MySqlDataAdapter {
                    SelectCommand = cmd
                };
                adapter.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    return;
                }

                var dateUpd = DateTime.Now;
                var url     =
                    $"https://api-zakaz.bashkortostan.ru/apifront/purchases/{_tn.Id}";
                var result = DownloadString.DownLUserAgent(url, false, headers);
                if (string.IsNullOrEmpty(result))
                {
                    Log.Logger(
                        $"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                        url);
                    return;
                }

                var jobj = JObject.Parse(result);
                var t    = jobj.SelectToken("data") ?? throw new ApplicationException($"data was not found  {_tn.Href}");
                var(updated, cancelStatus) = UpdateTenderVersion(connect, _tn.PurNum, dateUpd);
                CreaateOrganizer(connect, out var organiserId);
                GetEtp(connect, out var idEtp);
                var idRegion = GetRegionFromString("башкор", connect);
                PlacingWay = ((string)(t.SelectToken(
                                           "$..purchase_method")) ??
                              "").Trim();
                GetPlacingWay(connect, out var idPlacingWay);
                var idTender = CreateTender(connect, 0, organiserId, idPlacingWay, idEtp, cancelStatus, dateUpd,
                                            updated);
                var attacments = GetElements(t, "documents");
                WriteAttachments(connect, attacments, idTender);
                CreateCustomer(connect, out var customerId, t);
                CreateLot(connect, idTender, customerId, t);
                TenderKwords(connect, idTender);
                AddVerNumber(connect, _tn.PurNum, TypeFz);
            }
        }
Ejemplo n.º 24
0
        public void ParsingTender()
        {
            using (var connect = ConnectToDb.GetDbConnection())
            {
                connect.Open();
                var selectTend =
                    $"SELECT id_tender FROM {AppBuilder.Prefix}tender WHERE purchase_number = @purchase_number AND doc_publish_date = @doc_publish_date AND type_fz = @type_fz AND notice_version = @notice_version AND end_date = @end_date";
                var cmd = new MySqlCommand(selectTend, connect);
                cmd.Prepare();
                cmd.Parameters.AddWithValue("@purchase_number", _tn.PurNum);
                cmd.Parameters.AddWithValue("@doc_publish_date", _tn.DatePub);
                cmd.Parameters.AddWithValue("@type_fz", TypeFz);
                cmd.Parameters.AddWithValue("@notice_version", _tn.Status);
                cmd.Parameters.AddWithValue("@end_date", _tn.DateEnd);
                var dt      = new DataTable();
                var adapter = new MySqlDataAdapter {
                    SelectCommand = cmd
                };
                adapter.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    return;
                }

                var s = DownloadString.DownLHttpPost(_tn.Href);
                if (string.IsNullOrEmpty(s))
                {
                    s = DownloadString.DownLHttpPost(_tn.Href.Replace(
                                                         "https://market.lot-online.ru/app/SmallPurchaseCard/page?SmallPurchaseCard.smallPurchaseEntity=",
                                                         "https://market.lot-online.ru/app/section/pochta/SmallPurchaseCard/page?SmallPurchaseCard.smallPurchaseEntity="));
                }

                if (string.IsNullOrEmpty(s))
                {
                    Log.Logger("Empty string in ParsingTender()", _tn.Href);
                    return;
                }

                var htmlDoc = new HtmlDocument();
                htmlDoc.LoadHtml(s);
                var navigator = (HtmlNodeNavigator)htmlDoc.CreateNavigator();
                var dateUpd   = DateTime.Now;
                var(updated, cancelStatus) = UpdateTenderVersion(connect, _tn.PurNum, dateUpd);
                CreaateOrganizer(connect, out var organiserId);
                var idPlacingWay = 0;
                GetEtp(connect, out var idEtp);
                var idRegion = GetRegionFromString(_tn.RegionName, connect);
                var idTender = CreateTender(connect, idRegion, organiserId, idPlacingWay, idEtp, cancelStatus, dateUpd,
                                            updated);
                CreateCustomer(connect, out var customerId);
                AddAttachments(htmlDoc, connect, idTender);
                CreateLot(connect, idTender, customerId, htmlDoc);
                TenderKwords(connect, idTender);
                AddVerNumber(connect, _tn.PurNum, TypeFz);
            }
        }
Ejemplo n.º 25
0
        private void addPurObjects(MySqlConnection connect, int idLot, int customerId)
        {
            var url = $"https://api.onlc.ru/purchases/v1/public/procedures/{_tn.PurNum}/positions";
            var s   = DownloadString.DownLUserAgent(url);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in Tender()", url);
            }

            var jObj    = JObject.Parse(s);
            var tenders = GetElements(jObj, "data");

            tenders.ForEach(po =>
            {
                var poName     = ((string)po.SelectToken("Name") ?? "").Trim();
                var cond       = ((string)po.SelectToken("OwnerCondi") ?? "").Trim();
                var ovnerSrok  = ((string)po.SelectToken("OwnerSrok") ?? "").Trim();
                var ovnerSklad = ((string)po.SelectToken("OwnerSklad") ?? "").Trim();
                poName         =
                    $"{poName}\nТехнические характеристики товара: {cond}\nУсловия оплаты: {ovnerSrok}\nСрок поставки, наличие на складе: {ovnerSklad}"
                    .ReplaceHtmlEntyty();
                var okei          = ((string)po.SelectToken("Metr") ?? "").Trim();
                var price         = ((string)po.SelectToken("Price") ?? "").Trim();
                var sum           = ((string)po.SelectToken("TotalPrice") ?? "").Trim();
                var quant         = ((string)po.SelectToken("TCount") ?? "").Trim();
                var insertLotitem =
                    $"INSERT INTO {AppBuilder.Prefix}purchase_object SET id_lot = @id_lot, id_customer = @id_customer, name = @name, sum = @sum, okpd2_code = @okpd2_code, okpd2_group_code = @okpd2_group_code, okpd2_group_level1_code = @okpd2_group_level1_code, okpd_name = @okpd_name, price = @price, quantity_value = @quantity_value, okei = @okei, customer_quantity_value = @customer_quantity_value";
                var cmd19 = new MySqlCommand(insertLotitem, connect);
                cmd19.Prepare();
                cmd19.Parameters.AddWithValue("@id_lot", idLot);
                cmd19.Parameters.AddWithValue("@id_customer", customerId);
                cmd19.Parameters.AddWithValue("@name", poName);
                cmd19.Parameters.AddWithValue("@sum", sum);
                cmd19.Parameters.AddWithValue("@okpd2_code", "");
                cmd19.Parameters.AddWithValue("@okpd2_group_code", "");
                cmd19.Parameters.AddWithValue("@okpd2_group_level1_code", "");
                cmd19.Parameters.AddWithValue("@okpd_name", "");
                cmd19.Parameters.AddWithValue("@price", price);
                cmd19.Parameters.AddWithValue("@quantity_value", quant);
                cmd19.Parameters.AddWithValue("@customer_quantity_value", quant);
                cmd19.Parameters.AddWithValue("@okei", okei);
                cmd19.ExecuteNonQuery();
            });
        }
Ejemplo n.º 26
0
        public void ParsingTender()
        {
            using (var connect = ConnectToDb.GetDbConnection())
            {
                var dateUpd = DateTime.Now;
                connect.Open();
                if (TenderExist(connect))
                {
                    return;
                }
                var s = DownloadString.DownLHttpPostWithCookiesB2b(_tn.Href, ParserB2BWeb.CookieCollection,
                                                                   useProxy: AppBuilder.UserProxy);
                if (string.IsNullOrEmpty(s))
                {
                    Log.Logger("Empty string in ParsingTender()", _tn.Href);
                    return;
                }

                if (s.Contains("не допускает использование ботов"))
                {
                    Log.Logger("Google Captcha");
                    return;
                }

                var htmlDoc = new HtmlDocument();
                htmlDoc.LoadHtml(s);
                var navigator = (HtmlNodeNavigator)htmlDoc.CreateNavigator();
                UpdateCancelStatus(connect, dateUpd, out var updated, out var cancelStatus);
                var printForm = _tn.Href;
                AddOrganizer(connect, navigator, out var organiserId);
                AddCustomer(connect, out var customerId);
                GetEtp(connect, out var idEtp);
                GetPlacingWay(connect, out var idPlacingWay);
                FillPurName(navigator);
                FillBidAndScorDates(navigator, out var scoringDate, out var biddingDate);
                FillNoticeVer(navigator, out var noticeVer);
                AddTender(connect, organiserId, idPlacingWay, idEtp, scoringDate, biddingDate, cancelStatus, dateUpd,
                          noticeVer, printForm, updated, out var idTender);
                AddAttachments(htmlDoc, connect, idTender);
                AddLots(htmlDoc, navigator, connect, idTender, customerId);
                TenderKwords(connect, idTender);
                AddVerNumber(connect, _tn.PurNum, TypeFz);
            }
        }
Ejemplo n.º 27
0
        private void GetPage(int num)
        {
            var headers = new Dictionary <string, string>
            {
                ["authority"]        = "api-zakaz.bashkortostan.ru",
                ["sec-ch-ua"]        = "\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"97\", \"Chromium\";v=\"97\"",
                ["accept"]           = "application/json, text/plain, */*",
                ["sec-ch-ua-mobile"] = "?0",
                ["x-atmo"]           = "jWkpQzwVDhahJyX9hnuZuqFH2xZA6fNf",
                ["user-agent"]       =
                    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.36 Safari/537.36",
                ["origin"] = "https://zakaz.bashkortostan.ru",
            };

            var url =
                $"https://api-zakaz.bashkortostan.ru/apifront/purchases?filter=%7B%22purchaseName%22:%22%22,%22conditionname%22:%22%22,%22orderType%22:null,%22customer%22:%22%22,%22regNumber%22:%22%22,%22orderDateStart%22:null,%22orderDateFinish%22:null,%22priceStartFrom%22:null,%22priceStartTo%22:null%7D&status=&page={num}";
            var result = DownloadString.DownLUserAgent(url, false, headers);

            if (string.IsNullOrEmpty(result))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           url);
                return;
            }

            var jObj    = JObject.Parse(result);
            var tenders = GetElements(jObj, "data");

            foreach (var t in tenders)
            {
                try
                {
                    ParserTenderObj(t);
                }
                catch (Exception e)
                {
                    Log.Logger($"Error in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                               e, t.ToString());
                }
            }
        }
Ejemplo n.º 28
0
        private void CreateTenderFromDoc(string url)
        {
            var s = DownloadString.DownLUserAgent(url);

            if (String.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in CreateTenderFromDoc()", url);
                return;
            }
            s = s.CleanStringXml();
            var doc = new XmlDocument();

            doc.LoadXml(s);
            var jsons = JsonConvert.SerializeXmlNode(doc);

            using var jr = new JsonTextReader(new StringReader(jsons))
                  {
                      DateParseHandling = DateParseHandling.None
                  };
            var json           = JToken.ReadFrom(jr);
            var firstOrDefault = json.Children().OfType <JProperty>().FirstOrDefault(p => p.Name.Contains("fcs"));

            if (firstOrDefault != null)
            {
                var tender = firstOrDefault.Value;
                var t      = new TenderType44(tender, url);
                RunTenderParsing(t);
            }
            else
            {
                firstOrDefault = json.Children().OfType <JProperty>().FirstOrDefault(p => p.Name.Contains("epN"));
                if (firstOrDefault != null)
                {
                }
                else
                {
                    Log.Logger("Can not to define the tender type", url);
                }
            }
        }
Ejemplo n.º 29
0
        private void ParserTendersList(HtmlNode n)
        {
            var href = (n?.Attributes["href"]?.Value ?? "")
                       .Trim().ReplaceHtmlEntyty().Replace("&amp;", "&");

            if (string.IsNullOrEmpty(href))
            {
                Log.Logger("Empty href");
                return;
            }

            href = $"https://www1.dpd.ru{href}";
            var s = DownloadString.DownLUserAgent(href);

            if (string.IsNullOrEmpty(s))
            {
                Log.Logger("Empty string in ParserPage()", href);
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(s);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//div[@class = 'list-view']//div[@class = 'view']") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 30
0
        private void GetPage(string url)
        {
            var result =
                DownloadString.DownLHttpPostWithCookiesB2b(url, CookieCollection, useProxy: AppBuilder.UserProxy);

            if (string.IsNullOrEmpty(result))
            {
                Log.Logger($"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}",
                           url);
                return;
            }

            if (result.Contains("не допускает использование ботов"))
            {
                Log.Logger("Google Captcha");
                return;
            }

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(result);
            var tens =
                htmlDoc.DocumentNode.SelectNodes(
                    "//table[contains(@class, 'search-results')]/tbody/tr") ??
                new HtmlNodeCollection(null);

            foreach (var a in tens)
            {
                try
                {
                    ParserTender(a, url);
                }
                catch (Exception e)
                {
                    Log.Logger(e);
                }
            }
        }
Ejemplo n.º 31
0
 client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadString)
 client.DownloadStringAsync(new Uri("http://penis.mcforge.net/donators.txt"))