private static List <String> GetRecordHrefList(String s) { List <String> hrefs = new List <string>(); if (!String.IsNullOrWhiteSpace(s)) { Int32 sIndex = 0; while (true) { SectionIndexes sIs = new SectionIndexes(s, new String[] { "registry-entry__header-mid__number", "<a", "href=\"" }, sIndex, new string[] { "\"" }); String v = sIs.InnerText; if (!String.IsNullOrWhiteSpace(v)) { hrefs.Add(v); sIndex = sIs.Index3; continue; } break; } } return(hrefs); }
public static Guid SaveAuctionInf(String html) { Guid aUid = new Guid(); Object[][] md223 = new Object[][] { // Закупка new Object[] { "номер", new String[] { "Общие сведения", "омер извещения", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "дата_размещения", new String[] { "Общие сведения", "Дата размещения извещения", "<td", ">" }, new String[] { "</td>" } }, // Общие сведения о закупке new Object[] { "номер_извещения", new String[] { "Общие сведения", "омер извещения", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "способ_размещения_закупки", new String[] { "Общие сведения", "Способ размещения закупки", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "наименование_закупки", new String[] { "Общие сведения", "Наименование закупки", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "закупка_осуществляется_вследствие_аварии", new String[] { "Общие сведения", "Закупка осуществляется вследствие аварии", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "редакция", new String[] { "Общие сведения", "Редакция", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "наименование_электронной_площадки", new String[] { "Общие сведения", "Наименование электронной площадки", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "адрес_электронной_площадки", new String[] { "Общие сведения", "Адрес электронной площадки", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "дата_размещения_извещения", new String[] { "Общие сведения", "Дата размещения извещения", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "дата_размещения_текущей_редакции_извещения", new String[] { "Общие сведения", "Дата размещения текущей редакции", "<td", ">" }, new String[] { "</td>" } }, // Заказчик new Object[] { "наименование_организации", new String[] { "Заказчик", "Наименование организации", "<td", ">", "<a", ">" }, new String[] { "</a>" } }, new Object[] { "инн_кпп", new String[] { "Заказчик", "ИНН", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "огрн", new String[] { "Заказчик", "ОГРН", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "адрес_места_нахождения", new String[] { "Заказчик", "есто нахождения", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "почтовый_адрес", new String[] { "Заказчик", "Почтовый адрес", "<td", ">" }, new String[] { "</td>" } }, // Контактное лицо new Object[] { "организация", new String[] { "Контактное лицо", "Организация", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "контактное_лицо", new String[] { "Контактное лицо", "Контактное лицо", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "электронная_почта", new String[] { "Контактное лицо", "Электронная почта", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "телефон", new String[] { "Контактное лицо", "Телефон", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "факс", new String[] { "Контактное лицо", "Факс", "<td", ">" }, new String[] { "</td>" } }, // Требования к участникам закупки new Object[] { "требование_к_отсутствию_участников_закупки_в_реестре_недобросовестных_поставщиков", new String[] { "Требования к участникам закупки", "Требование к отсутствию", "<td", ">" }, new String[] { "</td>" } }, // Порядок размещения закупки new Object[] { "дата_и_время_окончания_подачи_заявок", new String[] { "Порядок проведения процедуры", "Дата и время окончания подачи", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "дата_окончания_срока_рассмотрения_заявок", new String[] { "Порядок проведения процедуры", "Дата рассмотрения", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "дата_и_время_проведение_аукциона", new String[] { "Порядок проведения процедуры", "Дата подведения итогов", "<td", ">" }, new String[] { "</td>" } }, // Предоставление документации new Object[] { "срок_предоставления", new String[] { "Предоставление документации", "Срок", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "место_предоставления", new String[] { "Предоставление документации", "Место", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "порядок_предоставления", new String[] { "Предоставление документации", "Порядок", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "официальный_сайт", new String[] { "Предоставление документации", "Официальный сайт", "<td", ">" }, new String[] { "</td>" } }, new Object[] { "внесение_платы_за_предоставление_конкурсной_документации", new String[] { "Предоставление документации", "Внесение платы", "<td", ">" }, new String[] { "</td>" } } }; SqlCommand cmd = new SqlCommand { Connection = new SqlConnection(Env.cnString), CommandText = "[Auctions].[dbo].[save_auction223_inf]", CommandType = CommandType.StoredProcedure }; foreach (Object[] p in md223) { var sect = new SectionIndexes(html, (String[])p[1], 0, (String[])p[2]); String v = sect.InnerText; if (v != null) { String dbName = p[0] as String; v = Utilities.NormString(v); if (cmd.Parameters.Contains(dbName)) { cmd.Parameters[dbName].Value = v; } else { cmd.Parameters.AddWithValue(dbName, v); } } } using (cmd.Connection) { Object o = null; cmd.Connection.Open(); o = cmd.ExecuteScalar(); if (o != null && o.GetType() == typeof(Guid)) { aUid = (Guid)o; } } return(aUid); }
private static Guid ParseAndSaveAuction44fzCommonInf(String html) { Guid aUid = new Guid(); // берём основные блоки Int32 c0 = new SectionIndexes(html, new String[] { "cardWrapper" }).Index1; // заявка Int32 h0 = new SectionIndexes(html, new String[] { "cardMainInfo" }, c0).Index1; // общая_информация_о_закупке Int32 t0 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Общая информация о закупке", "</span>" }, c0).Index1; // информация_об_организации_осуществляющей_определение_поставщика Int32 t1 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Контактная информация", "</span>" }, c0).Index1; // информация_о_процедуре_закупки Int32 t2 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Информация о процедуре электронного аукциона", "</span>" }, c0).Index1; // начальная_максимальная_цена_контракта Int32 t3 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Начальная (максимальная) цена контракта", "</span>" }, c0).Index1; // информация_об_объекте_закупки Int32 t4 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Информация об объекте закупки", "</span>" }, c0).Index1; // преимущества_требования_к_участникам Int32 t5 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Преимущества, требования к участникам", "</span>" }, c0).Index1; // Int32 t6 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Документация об электронном аукционе", "</span>" }, c0).Index1; // Int32 t7 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Обеспечение заявки", "</span>" }, c0).Index1; // Int32 t8 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Условия контракта", "</span>" }, c0).Index1; // Int32 t9 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Обеспечение исполнения контракта", "</span>" }, c0).Index1; // Int32 t10 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Обеспечение гарантийных обязательств", "</span>" }, c0).Index1; // Int32 t11 = new SectionIndexes(html, new String[] { "blockInfo__title", "span", "Информация о банковском и (или) казначейском сопровождении контракта", "</span>" }, c0).Index1; // записываем на SQL сервер в базу Auctions общую информацию о заявке Object[][] md44 = new Object[][] { // закупка new Object[] { "номер", h0, new String[] { ">№ " }, new String[] { "<" } }, new Object[] { "дата_размещения", h0, new String[] { "Размещено" }, new String[] { "</div>" } }, new Object[] { "кооператив", h0, new String[] { "cooperative" }, null, "1" }, // общая_информация_о_закупке new Object[] { "способ_определения_поставщика", t0, new String[] { "section", "span", "Способ определения поставщика", "</span>" }, new String[] { "</section>" } }, new Object[] { "наименование_электронной_площадки_в_интернете", t0, new String[] { "section", "span", "Наименование электронной площадки", "</span>" }, new String[] { "</section>" } }, new Object[] { "адрес_электронной_площадки_в_интернете", t0, new String[] { "section", "span", "Адрес электронной площадки", "</span>", "<a", ">" }, new String[] { "</section>" } }, new Object[] { "размещение_осуществляет", t0, new String[] { "section", "span", "Размещение осуществляет", "</span>", "<a", ">" }, new String[] { "</section>" } }, new Object[] { "объект_закупки", t0, new String[] { "section", "span", "Наименование объекта закупки", "</span>" }, new String[] { "</section>" } }, new Object[] { "этап_закупки", t0, new String[] { "section", "span", "Этап закупки", "</span>" }, new String[] { "</section>" } }, new Object[] { "сведения_о_связи_с_позицией_плана_графика", t0, new String[] { "section", "span", "Сведения о связи", "</span>" }, new String[] { "</section>" } }, new Object[] { "номер_типового_контракта", t0, new String[] { "section", "span", "Номер типового контракта", "</span>" }, new String[] { "</section>" } }, new Object[] { "дата_и_время_окончания_подачи_заявок", t0, new String[] { "section", "span", "Дата и время окончания срока подачи", "</span>" }, new String[] { "</section>" } }, // информация_об_организации_осуществляющей_определение_поставщика new Object[] { "организация_осуществляющая_размещение", t1, new String[] { "section", "span", "Организация, осуществляющая размещение", "</span>" }, new String[] { "</section>" } }, new Object[] { "почтовый_адрес", t1, new String[] { "section", "span", "Почтовый адрес", "</span>" }, new String[] { "</section>" } }, new Object[] { "место_нахождения", t1, new String[] { "section", "span", "Место нахождения", "</span>" }, new String[] { "</section>" } }, new Object[] { "ответственное_должностное_лицо", t1, new String[] { "section", "span", "Ответственное должностное лицо", "</span>" }, new String[] { "</section>" } }, new Object[] { "адрес_электронной_почты", t1, new String[] { "section", "span", "Адрес электронной почты", "</span>" }, new String[] { "</section>" } }, new Object[] { "номер_контактного_телефона", t1, new String[] { "section", "span", "Номер контактного телефона", "</span>" }, new String[] { "</section>" } }, new Object[] { "факс", t1, new String[] { "section", "span", "Факс", "</span>" }, new String[] { "</section>" } }, new Object[] { "дополнительная_информация", t1, new String[] { "section", "span", "Дополнительная информация", "</span>" }, new String[] { "</section>" } }, // информация_о_процедуре_закупки new Object[] { "дата_и_время_начала_подачи_заявок", t2, new String[] { "section", "span", "Дата и время начала подачи", "</span>" }, new String[] { "</section>" } }, new Object[] { "дата_и_время_окончания_подачи_заявок", t2, new String[] { "section", "span", "Дата и время окончания подачи", "</span>" }, new String[] { "</section>" } }, new Object[] { "место_подачи_заявок", t2, new String[] { "section", "span", "Место подачи заявок", "</span>" }, new String[] { "</section>" } }, new Object[] { "порядок_подачи_заявок", t2, new String[] { "section", "span", "Порядок подачи заявок", "</span>" }, new String[] { "</section>" } }, new Object[] { "дата_окончания_срока_рассмотрения_первых_частей", t2, new String[] { "section", "span", "Дата окончания срока", "</span>" }, new String[] { "</section>" } }, new Object[] { "дата_проведения_аукциона_в_электронной_форме", t2, new String[] { "section", "span", "Дата проведения", "</span>" }, new String[] { "</section>" } }, new Object[] { "время_проведения_аукциона", t2, new String[] { "section", "span", "Время проведения", "</span>" }, new String[] { "</section>" } }, new Object[] { "дополнительная_информация2", t2, new String[] { "section", "span", "Дополнительная информация", "</span>" }, new String[] { "</section>" } }, // начальная_максимальная_цена_контракта new Object[] { "начальная_максимальная_цена_контракта", t3, new String[] { "section", "span", "Начальная (максимальная) цена", "</span>" }, new String[] { "</section>" } }, new Object[] { "валюта", t3, new String[] { "section", "span", "Валюта", "</span>" }, new String[] { "</section>" } }, new Object[] { "источник_финансирования", t3, new String[] { "section", "span", "Источник финансирования", "</span>" }, new String[] { "</section>" } }, new Object[] { "идентификационный_код_закупки", t3, new String[] { "section", "span", "Идентификационный код закупки", "</span>" }, new String[] { "</section>" } }, new Object[] { "оплата_исполнения_контракта_по_годам", t3, new String[] { "section", "span", "Оплата исполнения контракта", "</span>" }, new String[] { "</section>" } }, // информация_об_объекте_закупки new Object[] { "описание_объекта_закупки", t4, new String[] { "section", "span", "Описание объекта закупки", "</span>" }, new String[] { "</section>" } }, new Object[] { "условия_запреты_и_ограничения_допуска_товаров", t4, new String[] { "section", "span", "Условия", "запреты", "ограничения", "</span>" }, new String[] { "</section>" } }, new Object[] { "табличная_часть_в_формате_html", t4, new String[] { "section", "span", "Табличная часть", "</span>" }, new String[] { "</section>" } }, // преимущества_требования_к_участникам new Object[] { "преимущества", t5, new String[] { "section", "span", "Преимущества", "</span>" }, new String[] { "</section>" } }, new Object[] { "требования", t5, new String[] { "section", "span", "Требования", "</span>" }, new String[] { "</section>" } }, new Object[] { "ограничения", t5, new String[] { "section", "span", "Ограничения", "</span>" }, new String[] { "</section>" } } }; SqlCommand cmd = new SqlCommand { Connection = new SqlConnection(Env.cnString), CommandText = "[Auctions].[dbo].[save_auction_inf]", CommandType = CommandType.StoredProcedure }; foreach (Object[] p in md44) { String v = null; SectionIndexes sect; if (p[3] != null) { sect = new SectionIndexes(html, (String[])p[2], (Int32)p[1], (String[])p[3]); v = sect.InnerText; } else // cooperative { sect = new SectionIndexes(html, (String[])p[2]); if (sect.HeadIsFound) { v = (String)p[4]; } } if (v != null) { v = Utilities.NormString(v); String dbName = (String)p[0]; if (cmd.Parameters.Contains(dbName)) { cmd.Parameters[dbName].Value = v; } else { cmd.Parameters.AddWithValue(dbName, v); } } } using (cmd.Connection) { Object o = null; cmd.Connection.Open(); o = cmd.ExecuteScalar(); if (o != null && o.GetType() == typeof(Guid)) { aUid = (Guid)o; } } // записываем на SQL сервер в базу Auctions информацию о заказчиках (их может быть несколько) // здесь может быть два варианта // первый - когда списки expand пусты - сохраняем из основного блока // второй - сохраняем из списков // первый вариант SqlCommand cmd1 = new SqlCommand { Connection = new SqlConnection(Env.cnString), CommandText = "[Auctions].[dbo].[save_customer_requirement]", CommandType = CommandType.StoredProcedure }; cmd1.Parameters.AddWithValue("закупка_uid", aUid); cmd1.Parameters.AddWithValue("наименование_заказчика", cmd.Parameters["размещение_осуществляет"].Value); using (cmd1.Connection) { cmd1.Connection.Open(); cmd1.ExecuteScalar(); } /* * Object[][] mdCust = new Object[][] { * // требования_заказчика * new Object[] { "наименование_заказчика", 0, new String[] { " " }, new String[] { "</h3>" } }, * // условия_контракта * new Object[] { "место_доставки_товара", 0, new String[] { "Место доставки", "<td", ">" }, new String[] { "</td>" } }, * new Object[] { "сроки_поставки_товара", 0, new String[] { "Сроки поставки", "<td", ">" }, new String[] { "</td>" } }, * new Object[] { "сведения_о_связи_с_позицией_плана_графика", 0, new String[] { "Сведения о связи", "Сведения о связи", "<td", ">" }, new String[] { "</td>" } }, * new Object[] { "оплата_исполнения_контракта_по_годам", 0, new String[] { "Оплата исполнения", "<td", ">" }, new String[] { "</td>" } }, * // обеспечение_заявок * new Object[] { "размер_обеспечения", 0, new String[] { "Обеспечение заявок", "Размер обеспечения", "<td", ">" }, new String[] { "</td>" } }, * new Object[] { "порядок_внесения_денежных_средств", 0, new String[] { "Обеспечение заявок", "Порядок внесения", "<td", ">" }, new String[] { "</td>" } }, * new Object[] { "платежные_реквизиты", 0, new String[] { "Обеспечение заявок", "Платежные реквизиты", "<td", ">" }, new String[] { "</td>" } }, * // обеспечение_исполнения_контракта * new Object[] { "размер_обеспечения_2", 0, new String[] { "Обеспечение исполнения", "Размер обеспечения", "<td", ">" }, new String[] { "</td>" } }, * new Object[] { "порядок_предоставления_обеспечения", 0, new String[] { "Обеспечение исполнения", "Порядок предоставления", "<td", ">" }, new String[] { "</td>" } }, * new Object[] { "платежные_реквизиты_2", 0, new String[] { "Обеспечение исполнения", "Платежные реквизиты", "<td", ">" }, new String[] { "</td>" } }, * }; * * Int32 bi = new SectionIndexes(html, new String[] { "Требования заказчиков" }).Index1; * * var sect = new SectionIndexes(html, new String[] { "Требования заказчика" }, bi); * if (!sect.HeadIsFound) * { * String v; * foreach (Object[] p in mdCust) * { * v = null; * sect = new SectionIndexes(html, (String[])p[2], (Int32)p[1], (String[])p[3]); * v = sect.InnerText; * if (v != null) * { * v = Utilities.NormString(v); * cmd.Parameters.AddWithValue((String)p[0], v); * } * } * sect = new SectionIndexes(html, new String[] { "Общая информация", "Размещение осуществляет", "<td", ">", "<a", ">" }, 0, new String[] { "</a>" }); * v = sect.InnerText; * if (v != null) * { * v = Utilities.NormString(v); * if (cmd.Parameters.Contains("наименование_заказчика")) cmd.Parameters["наименование_заказчика"].Value = v; * else cmd.Parameters.AddWithValue("наименование_заказчика", v); * } * } * else * { * // второй вариант * while (sect.HeadIsFound) * { * Int32 ci = sect.Index1; * SqlCommand cmd = new SqlCommand * { * Connection = new SqlConnection(Env.cnString), * CommandText = "[Auctions].[dbo].[save_customer_requirement]", * CommandType = CommandType.StoredProcedure * }; * cmd.Parameters.AddWithValue("закупка_uid", aUid); * foreach (Object[] p in mdCust) * { * String v = null; * sect = new SectionIndexes(html, (String[])p[2], ci, (String[])p[3]); * v = sect.InnerText; * if (v != null) * { * v = Utilities.NormString(v); * cmd.Parameters.AddWithValue((String)p[0], v); * } * } * using (cmd.Connection) * { * Object o = null; * cmd.Connection.Open(); * o = cmd.ExecuteScalar(); * if (o != null && o.GetType() == typeof(Guid)) { aUid = (Guid)o; } * } * sect = new SectionIndexes(html, new String[] { "Требования заказчика" }, ci); * } * } */ return(aUid); }