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); } } }
public static int GetCountPage(string url) { var i = 1; var s = DownloadString.DownLTektorg(url); if (String.IsNullOrEmpty(s)) { Log.Logger( $"Empty string in {typeof(SharedTekTorg).Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}", url); return(i); } var parser = new HtmlParser(); var document = parser.Parse(s); var pages = document.QuerySelectorAll("ul.pagination:first-of-type > li > a[aria-label *= Страница]"); if (pages.Length > 0) { i = (from p in pages where p == pages.Last() select int.Parse(p.TextContent)).First(); } return(i); }
public void ParsingTender() { var noticeVersion = _tn.Status; using (var connect = ConnectToDb.GetDbConnection()) { connect.Open(); var selectTend = $"SELECT id_tender FROM {AppBuilder.Prefix}tender WHERE purchase_number = @purchase_number AND end_date = @end_date AND type_fz = @type_fz AND notice_version = @notice_version"; var cmd = new MySqlCommand(selectTend, connect); cmd.Prepare(); cmd.Parameters.AddWithValue("@purchase_number", _tn.PurNum); cmd.Parameters.AddWithValue("@end_date", _tn.DateEnd); cmd.Parameters.AddWithValue("@type_fz", TypeFz); cmd.Parameters.AddWithValue("@notice_version", noticeVersion); var dt = new DataTable(); var adapter = new MySqlDataAdapter { SelectCommand = cmd }; adapter.Fill(dt); if (dt.Rows.Count > 0) { //Log.Logger("This tender is exist in base", PurNum); return; } var s = DownloadString.DownLTektorg(_tn.Href); if (String.IsNullOrEmpty(s)) { Log.Logger( $"Empty string in {GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}", _tn.Href); return; } var parser = new HtmlParser(); var document = parser.Parse(s); var dateUpd = DateTime.Now; var(updated, cancelStatus) = UpdateTenderVersion(connect, _tn.PurNum, dateUpd); var printForm = _tn.Href; var customerId = 0; var organiserId = 0; organiserId = GetOrganizer(document, connect); GetPlacingWay(connect, out var idPlacingWay); GetEtp(connect, out var idEtp); var regPlace = (document.QuerySelector("td:contains('Регион поставки:') + td")?.TextContent ?? "").Trim(); var idRegion = GetRegionFromString(regPlace, connect); var insertTender = $"INSERT INTO {AppBuilder.Prefix}tender SET id_region = @id_region, id_xml = @id_xml, purchase_number = @purchase_number, doc_publish_date = @doc_publish_date, href = @href, purchase_object_info = @purchase_object_info, type_fz = @type_fz, id_organizer = @id_organizer, id_placing_way = @id_placing_way, id_etp = @id_etp, end_date = @end_date, scoring_date = @scoring_date, bidding_date = @bidding_date, cancel = @cancel, date_version = @date_version, num_version = @num_version, notice_version = @notice_version, xml = @xml, print_form = @print_form"; var cmd9 = new MySqlCommand(insertTender, connect); cmd9.Prepare(); cmd9.Parameters.AddWithValue("@id_region", idRegion); cmd9.Parameters.AddWithValue("@id_xml", _tn.PurNum); cmd9.Parameters.AddWithValue("@purchase_number", _tn.PurNum); cmd9.Parameters.AddWithValue("@doc_publish_date", _tn.DatePub); cmd9.Parameters.AddWithValue("@href", _tn.Href); cmd9.Parameters.AddWithValue("@purchase_object_info", _tn.PurName); cmd9.Parameters.AddWithValue("@type_fz", TypeFz); cmd9.Parameters.AddWithValue("@id_organizer", organiserId); cmd9.Parameters.AddWithValue("@id_placing_way", idPlacingWay); cmd9.Parameters.AddWithValue("@id_etp", idEtp); cmd9.Parameters.AddWithValue("@end_date", _tn.DateEnd); cmd9.Parameters.AddWithValue("@scoring_date", DateTime.MinValue); cmd9.Parameters.AddWithValue("@bidding_date", DateTime.MinValue); cmd9.Parameters.AddWithValue("@cancel", cancelStatus); cmd9.Parameters.AddWithValue("@date_version", dateUpd); cmd9.Parameters.AddWithValue("@num_version", 1); cmd9.Parameters.AddWithValue("@notice_version", noticeVersion); cmd9.Parameters.AddWithValue("@xml", _tn.Href); cmd9.Parameters.AddWithValue("@print_form", printForm); var resInsertTender = cmd9.ExecuteNonQuery(); var idTender = (int)cmd9.LastInsertedId; Counter(resInsertTender, updated); var docs = document.QuerySelectorAll( "#documentation > a"); if (docs.Length == 0) { docs = document.QuerySelectorAll( "div.procedure__item--documents a"); } GetDocs(docs, connect, idTender); GetLots(connect, idTender, customerId, document); TenderKwords(connect, idTender); AddVerNumber(connect, _tn.PurNum, TypeFz); } }