private static void CreateItensLicitacao(HtmlDocument htmDoc, Licitacao licitacao) { RService.Log("(CreateItensLicitacao) " + Name + ": Criando itens do objeto da licitação num.. " + licitacao.IdLicitacaoFonte + " at {0}", Path.GetTempPath() + Name + ".txt"); int count; HtmlNode dadosOc; int rows = 1; /*Pega o html da table com o id dgItensOc pra essa OC*/ dadosOc = htmDoc.DocumentNode.Descendants().FirstOrDefault(x => x.Id == "ctl00_c_area_conteudo_grdv_item"); /*Percorre as linhas da tabela exceto o Header que tem o atributo class HeaderStyle*/ foreach (var row in dadosOc.Descendants("tr") /*.Where(x => x.Attributes.Contains("class") && !x.Attributes["class"].Value.Contains("HeaderSt"))*/) { if (!row.InnerHtml.Contains("th scope=")) { ItemLicitacao item = new ItemLicitacao(); /*Contador usado para as colunas da tabela*/ count = 0; /*Percorre cada coluna de uma linha da tabela Intes da Oferta de Compra*/ foreach (var data in row.Descendants("td")) { /*A terceira coluna da tabela de Itens da Oferta de Compra contém a descrição do Item.*/ switch (count) { case 0: break; case 1: item.Numero = int.Parse(data.InnerText.Trim()); break; case 2: item.Codigo = data.InnerText.Trim(); break; case 3: string desc = data.InnerText.Trim(); item.DescricaoDetalhada = desc; item.Descricao = desc.Length > 50 ? desc.Substring(0, 50) + "..." : desc; break; case 4: item.Quantidade = int.Parse(data.InnerText.Trim()); break; case 5: item.Unidade = data.InnerText.Trim(); break; } count++; } item.MargemPreferencia = "0"; item.Decreto7174 = "0"; licitacao.ItensLicitacao.Add(item); rows++; } } }
private static void CreateItensLicitacao(ChromeDriver web, Licitacao licitacao) { RService.Log("(CreateItensLicitacao) " + Name + ": Criando itens do objeto da licitação num.. " + licitacao.IdLicitacaoFonte + " at {0}", Path.GetTempPath() + Name + ".txt"); int count; var itens = web.FindElements(By.TagName("tr")); //Percorre cada linha da tabela com os itens, cria cada registro no banco e os adiciona à licitação foreach (var row in itens) { var text = row.GetAttribute("style").ToString(); if (row.GetAttribute("style").Contains("background-color: ") && !row.GetAttribute("style").Contains("color: white; background-color: rgb(107, 105, 107); font-weight: bold;")) { count = 0; ItemLicitacao item = new ItemLicitacao(); foreach (var td in row.FindElements(By.TagName("td"))) { switch (count) { case 0: break; case 1: item.Numero = int.Parse(td.Text); break; case 2: item.Codigo = td.Text; break; case 3: item.DescricaoDetalhada = td.Text; item.Descricao = item.DescricaoDetalhada.Length > 50 ? item.DescricaoDetalhada.Substring(0, 50) + "..." : item.DescricaoDetalhada; break; case 4: item.Quantidade = int.Parse(td.Text); break; case 5: item.Unidade = td.Text; break; } count++; } item.MargemPreferencia = "0"; item.Decreto7174 = "0"; licitacao.ItensLicitacao.Add(item); } } }
private static void GetItens(HtmlDocument htmlQuote, Licitacao l) { try { foreach (var row in htmlQuote.DocumentNode.Descendants("tr").Where(x => !x.Attributes.Contains("height") && x.Attributes.Contains("class") && x.Attributes["class"].Value.Equals("tex3"))) { ItemLicitacao item = new ItemLicitacao(); int count = 0; foreach (var cell in row.ChildNodes.Where(x => x.Name.Equals("td"))) { switch (count) { case 0: item.Numero = Convert.ToInt32(cell.InnerText); break; case 1: item.Descricao = cell.InnerText.Replace("\");\r\n \">", ""); string itemLink = cell.ChildNodes[0].Attributes["href"].Value.ToString().Split('/')[2]; HtmlDocument itemDetail = WebHandle.GetHtmlDocOfPage(string.Format(Constants.CN_COTACAO_LINK, itemLink), Encoding.GetEncoding("ISO-8859-1")); string descDetail = Regex.Replace(itemDetail.DocumentNode.InnerHtml.ToString().Replace("<br>", "\n"), "<.*?>", String.Empty) .Replace("\n\n\n\n \tCOMPRASNET - O Portal de Compras do Governo Federal :: DESCRIÇÃO COMPLEMENTAR.\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n function erroLogin(){\n window.opener.erroLogin();\n window.close();\n }\n\n\n\n function popup(ev, elA, features) {\n var url, target;\n url = elA.getAttribute(\"href\");\n target = elA.getAttribute(\"target\");\n window.open(url, target, features);\n\n if (ev.cancelBubble != undefined) { //IE\n ev.cancelBubble = true; \n ev.returnValue = false;\n }\n if (ev.preventDefault) ev.preventDefault(); //Outros\n }\n\n\n\n\n\n\nAguarde!\n\n\nDESCRIÇÃO COMPLEMENTAR\n\r\n\r\n", "") .Replace("\r\n\r\n\r\n", "\n") .Replace(" ", ""); item.DescricaoDetalhada = descDetail; break; case 2: item.Quantidade = Convert.ToInt32(cell.InnerText); break; case 3: item.Unidade = cell.InnerText; break; } count++; } item.Decreto7174 = "0"; item.MargemPreferencia = "0"; l.ItensLicitacao.Add(item); } } catch (Exception e) { RService.Log("Exception (GetItens) " + Name + ": " + e.Message + " / " + e.StackTrace + " / " + e.InnerException + " at {0}", Path.GetTempPath() + Name + ".txt"); } }
private static void CreateItensAlternateId(HtmlDocument htmDoc, Licitacao licitacao, ref int count, ref int rows) { HtmlNode dadosOc = htmDoc.DocumentNode.Descendants().SingleOrDefault(x => x.Id == "ctl00_conteudo_loteGridItens_grdLote"); foreach (var row in dadosOc.Descendants("tr")) { if (row.Attributes.Contains("class") && row.Attributes["class"].Value.Contains("HeaderStyle")) { continue; } ItemLicitacao item = new ItemLicitacao(); /*Contador usado para as colunas da tabela*/ count = 0; /*Percorre cada coluna de uma linha da tabela Intes da Oferta de Compra*/ foreach (var data in row.Descendants("td")) { /*A quarta coluna da tabela de Itens da Oferta de Compra contém a descrição do Item.*/ switch (count) { case 2: item.Numero = int.Parse(data.InnerText.Trim()); break; case 3: string desc = data.InnerText.Trim(); item.Descricao = desc.Length > 50 ? desc.Substring(0, 50) + "..." : desc; item.DescricaoDetalhada = desc; break; case 4: item.Quantidade = int.Parse(data.InnerText.Trim().Replace(".", "")); break; case 1: item.Unidade = "GRUPO"; break; } count++; } licitacao.ItensLicitacao.Add(item); rows++; } }
private static void CreateItens(Licitacao licitacao, ref int count, ref int rows, HtmlNode dadosOc) { foreach (var row in dadosOc.Descendants("tr")) { if (row.Attributes.Contains("class") && row.Attributes["class"].Value.Contains("HeaderStyle")) { continue; } ItemLicitacao item = new ItemLicitacao(); /*Contador usado para as colunas da tabela*/ count = 0; /*Percorre cada coluna de uma linha da tabela Intes da Oferta de Compra*/ foreach (var data in row.Descendants("td")) { /*A quarta coluna da tabela de Itens da Oferta de Compra contém a descrição do Item.*/ switch (count) { case 2: item.Numero = int.Parse(data.InnerText.Trim()); break; case 4: string desc = data.InnerText.Trim(); item.Descricao = desc.Length > 50 ? desc.Substring(0, 50) + "..." : desc; item.DescricaoDetalhada = desc; break; case 5: item.Quantidade = int.Parse(data.InnerText.Trim().Replace(".", "")); break; case 6: item.Unidade = data.InnerText.Trim(); break; } count++; } licitacao.ItensLicitacao.Add(item); rows++; } }