//public Frm_Tarjous(Tarjous ClTarj) //{ // clEditTarjous = ClTarj; // InitializeComponent(); //} private void Frm_Tarjous_Shown(object sender, EventArgs e) { Tarjous clTemp = new Tarjous(); clEditTarjous = clTemp.kyseinen(null); Txtbx_Kunta.Text = clEditTarjous.strKunta; TxtBx_Tunnus.Text = clEditTarjous.strTunnus; TxtBx_AlkuperainenLinkki.Text = clEditTarjous.strAlkuperainenLinkki; TxtBx_TajousDocLinkki.Text = clEditTarjous.strTajousDocLinkki; TxtBx_TarjousDirLinkki.Text = clEditTarjous.strTarjousDirLinkki; TxtBx_Pyynto.Text = clEditTarjous.strPyynto; TxtBx_MaaraAika.Text = clEditTarjous.strMaaraAika; TxtBx_DataBase.Text = clEditTarjous.strDataBase; TxtBx_Kuvaus.Text = clEditTarjous.strKuvaus; TxtBx_Kommentti.Text = clEditTarjous.strKommentti; TxtBx_Julkaistu.Text = clEditTarjous.strJulkaistu; TxtBx_IlmoitusTyyppi.Text = clEditTarjous.strIlmoitusTyyppi; TxtBx_VaihtoehtoLinkki.Text = clEditTarjous.strVaihtoehtoLinkki; ChckBx_Filtered.Checked = clEditTarjous.strFiltered.ToLower().Equals("true"); ChckBx_Kuvaushaettu.Checked = clEditTarjous.strKuvaushaettu.ToLower().Equals("true"); NUD_Kiinnostus.Value = clEditTarjous.iKiinnostus; TxtBx_Filters.Text = clEditTarjous.strSuodatettu; }
/// <summary> /// there are two pages: /// <h2>Voimassa olevat tarjouspyynnöt</h2> /// <div class="sivunohje"><b>Ahvenanmaa</b></div> /// 1. No offers => /// < span > Ei voimassa olevia pienhankintoja</span> KEYROW TO NO OFFERS /// 2. Offerlists=> /// <table border="0" cellpadding="5" style="width:95%"> /// <tr> /// <td><b>Oulun kaupunki</b></td> CITY /// </tr> /// </table> /// <table id = "alaHankTable" border= "0" cellpadding= "5" style= "width:95%" > /// <tr class="otsikkorivi"><th>Tunniste</th><th>Tarjouspyyntö</th> /// <th>Kuvaus</th><th>Määräaika</th><th> </th></tr> /// ... /// <tr class="even"> /// <td><a class="linkki" href="/pohjoispohjanmaa/Tender/BasicInfo?tpg=8ba3a8e0-8f05-49db-b96d-c24e261410ce">300911</a> </td> /// <td><a class="linkki" href="/pohjoispohjanmaa/Tender/BasicInfo?tpg=8ba3a8e0-8f05-49db-b96d-c24e261410ce">Saloisen koulun kotitalousluokan pienkoneet</a> </td> /// <td>Raahen kaupungin hankintapalvelut pyytää tarjouksia Saloisten koulun kotitalousluokan tarvikkeista. </td> /// <td>10.06.2020 12:00</td> /// <td><a class="linkki" href="/pohjoispohjanmaa/Tender/BasicInfo?tpg=8ba3a8e0-8f05-49db-b96d-c24e261410ce&gen=False"><img alt = "Avaa" border="0" class="vertalignmid" src="/Content/images/bt_nuoli.gif" title="Avaa"></img></a> </td> /// </tr> /// ... /// </tbody> </table> /// All data to Class OFFERRQUEST. /// IMPORTANT:Link,id,title,description,deadline. /// MORE: City,offertime,last question day /// </summary> /// <returns></returns> /// internal override bool PuraTarjousSivut() { string strEtiEka = "Voimassa olevat tarjouspyyn"; string strEiPyyntöjä = "Ei voimassa olevia pienhankintoja"; bool bOk = false; int iOnPaikalla = strEtusivu.IndexOf(strEiPyyntöjä); if (-1 < iOnPaikalla) { Trace.WriteLine($"Ei voimassa olevia pienhankintoja"); return(true); //It's a leagal state } iOnPaikalla = strEtusivu.IndexOf(strEtiEka); if (-1 == iOnPaikalla) { Trace.WriteLine($"Virhe {strEtiEka}"); return(false); } // strEtusivu = strEtusivu.Remove(0, iOnPaikalla); //first <table> -> iOnPaikalla = strEtusivu.IndexOf("<table"); if (-1 == iOnPaikalla) { Trace.WriteLine($"Virhe <table"); return(false); } strEtusivu = strEtusivu.Remove(0, iOnPaikalla); //last </table> next iOnPaikalla = strEtusivu.LastIndexOf("</table>"); if (-1 == iOnPaikalla) { Trace.WriteLine($"Virhe </table>"); return(false); } strEtusivu = strEtusivu.Remove(iOnPaikalla + "</table>".Length); List <List <string> > table = new List <List <string> >(); String strKunta = string.Empty; char[] charsToTrim = { '{', ' ', '}', '\n', '\r' }; while (true) { iOnPaikalla = strEtusivu.IndexOf("</table>"); if (-1 == iOnPaikalla) { //No more table ends if (!bOk) { Trace.WriteLine($"Virhe </table>"); return(false); } else { //make new lines from table. foreach (List <string> tyot in table) { if (tyot[0].Contains("KN")) { strKunta = tyot[0].Remove(0, tyot[0].IndexOf("=") + 1).Replace("ä", "ä").Replace(" ", " ").Trim(charsToTrim); } else { tyot.RemoveAt(0); foreach (string strOsa in tyot) { //tyot[0].Trim(charsToTrim); string[] palat = strOsa.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); Tarjous clTarjous = new Tarjous(strKunta, "PienHankinta"); clTarjous.strAlkuperainenLinkki = palat[0].Remove(0, palat[0].LastIndexOf("=\"") + 2).Trim(charsToTrim); clTarjous.strAlkuperainenLinkki = strPPalvelu + clTarjous.strAlkuperainenLinkki.Remove(clTarjous.strAlkuperainenLinkki.IndexOf("\">")); clTarjous.strTunnus = palat[0].Remove(0, palat[0].IndexOf(">") + 1).Replace(" ", " ").Replace("</a>", " ").Trim(charsToTrim); clTarjous.strPyynto = palat[1].Remove(0, palat[1].IndexOf("=") + 1).Replace(" ", " ").Trim(charsToTrim); clTarjous.strKuvaus = palat[2].Remove(0, palat[2].IndexOf("=") + 1).Replace(" ", " ").Trim(charsToTrim); clTarjous.strMaaraAika = palat[3].Remove(0, palat[3].IndexOf("=") + 1).Replace(" ", " ").Trim(charsToTrim); //Must check if current offer is already in list clTarjous.strDataBase = "PH"; lstTajoukset.Add(clTarjous); } } } return(true); } } string apuSivu = strEtusivu.Substring(0, iOnPaikalla + "</table>".Length); strEtusivu = strEtusivu.Remove(0, iOnPaikalla + "</table>".Length); table.Add(HtmlToList(apuSivu)); bOk = true; } //return false; }
/// <summary> /// there are two pages: /// <table width = "100%" height="100%" cellspacing="0" cellpadding="0" border="0"> /// <tbody><tr> /// <td><img src = "/Content/images/spacer.gif" width="20" height="1"></td> /// ... /// <td><a id = "ctl00_PageContent_AvaaHaku".... Siirry hakuun >></span></a> /// ... /// </table> /// Remove all before Siirry hakuun >> text. Next remofe text before first </table>. /// 1. div divFoorte contains company /// </summary> /// <returns></returns> internal override bool PuraAlaSivut(string strEtusivu, string strPaikka) { string strEtiEka = "divFooter"; string strEti1ka = "KelpuuttamisJarjestelmaDivi"; string strEti2ka = "ctl00_PageContent_DPSListaPanel";// "DPSIlmoituslista_wrapper"; string strEti3ka = "ctl00_PageContent_GridView1_wrapper"; string strEti4ka = "ctl00_PageContent_MuutIlmOts"; //if (!strPaikka.Equals("caruna,p=191")) return true; //bool bOk = false; int iOnPaikalla = strEtusivu.LastIndexOf(strEtiEka); if (-1 == iOnPaikalla) { Trace.WriteLine($"Virhe {strEtiEka}"); return(false); } //long lLen = strEtusivu.LongCount(); // strEtusivu = strEtusivu.Remove(iOnPaikalla); List <int> iPaikalla = new List <int>(); if (-1 != strEtusivu.IndexOf(strEti1ka)) { iPaikalla.Add(strEtusivu.IndexOf(strEti1ka)); } if (-1 != strEtusivu.IndexOf(strEti2ka)) { iPaikalla.Add(strEtusivu.IndexOf(strEti2ka)); } if (-1 != strEtusivu.IndexOf(strEti3ka)) { iPaikalla.Add(strEtusivu.IndexOf(strEti3ka)); } if (-1 != strEtusivu.IndexOf(strEti4ka)) { iPaikalla.Add(strEtusivu.IndexOf(strEti4ka)); } if (iPaikalla.Count == 0) { Trace.WriteLine($"Ei Tarjouspyyntöjä"); return(true); } //We don't know the order iPaikalla.Sort(); iPaikalla.Reverse(); //start biggest number, remove if used List <string> strPala = new List <string>(); foreach (int iVal in iPaikalla) { strPala.Add(strEtusivu.Remove(0, iVal)); strEtusivu = strEtusivu.Remove(iVal); } String strKunta = strPaikka.Remove(strPaikka.IndexOf(",")); char[] charsToTrim = { '{', ' ', '}', '\n', '\r' }; List <string> table = new List <string>(); string strTableEnd = "</table>"; foreach (string strDiv in strPala) { if (-1 != strDiv.IndexOf(strTableEnd)) { string apuSivu = strDiv.Remove(strDiv.IndexOf(strTableEnd) + strTableEnd.Length); apuSivu = apuSivu.Remove(0, apuSivu.IndexOf("<table")); table.AddRange(HtmlToList(apuSivu)); } } //tablepurku foreach (var strRivi in table) { string[] asOsat = strRivi.Split(new string[] { "][" }, StringSplitOptions.RemoveEmptyEntries); Tarjous clTarjous = new Tarjous(strKunta, "Tarjouspalvelu"); foreach (var strOsa in asOsat) { string[] asOppi = strOsa.Split(new string[] { ":=" }, StringSplitOptions.RemoveEmptyEntries); if (asOppi.First().ToLower().Contains("yksi")) { strKunta = asOppi.Last().Remove(asOppi.Last().LastIndexOf("</")); strKunta = strKunta.Remove(0, strKunta.LastIndexOf(">") + 1); clTarjous.VaihdaYksikko(strKunta); } if (asOppi.First().ToLower().Contains("tunn")) { string strTemp = asOppi.Last().Remove(asOppi.Last().LastIndexOf("</")); strTemp = strTemp.Remove(0, strTemp.LastIndexOf(">") + 1); clTarjous.strTunnus = strTemp; if (asOppi.Last().IndexOf("href=") != -1) { strTemp = asOppi.Last().Remove(0, asOppi.Last().IndexOf("href=") + 6); strTemp = strTemp.Remove(strTemp.IndexOf(" ") - 1); strTemp = strTemp.TrimStart('/'); strTemp = strTemp.TrimEnd('\"'); strTemp = strTemp.Replace("&", "&"); clTarjous.strAlkuperainenLinkki = strUriAlku + strTemp; } } if (asOppi.First().ToLower().Contains("ilmo")) { string strTemp = asOppi.Last(); if (-1 != asOppi.Last().LastIndexOf("</a")) { strTemp = strTemp.Remove(asOppi.Last().LastIndexOf("</a")); strTemp = strTemp.Remove(0, strTemp.LastIndexOf(">") + 1); } clTarjous.strPyynto = strTemp; } if (asOppi.First().ToLower().Contains("kuvaus")) { string strTemp = asOppi.Last(); if (-1 != asOppi.Last().LastIndexOf("style=")) { strTemp = asOppi.Last().Remove(asOppi.Last().LastIndexOf("style=")); strTemp = strTemp.Remove(0, strTemp.LastIndexOf("title=") + "title=".Length); } clTarjous.strKuvaus = strTemp; } if (asOppi.First().ToLower().Contains("määrä")) { string strTemp = asOppi.Last(); if (strTemp.LastIndexOf("</") != -1) { strTemp = strTemp.Remove(strTemp.LastIndexOf("</")); strTemp = strTemp.Remove(0, strTemp.LastIndexOf(">") + 1); } clTarjous.strMaaraAika = strTemp; } } clTarjous.strDataBase = "TP"; lstTajoukset.Add(clTarjous); } return(true); }
internal override bool PuraAlaSivut(string strEtusivu, string strPaikka) { string strEtiEka = "<table"; string strEti1ka = "</table>"; //bool bOk = false; int iOnPaikalla = strEtusivu.LastIndexOf(strEtiEka); if (-1 == iOnPaikalla) { Trace.WriteLine($"Virhe {strEtiEka}"); return(false); } ////long lLen = strEtusivu.LongCount(); // strEtusivu = strEtusivu.Remove(0, iOnPaikalla); //List<int> iPaikalla = new List<int>(); iOnPaikalla = strEtusivu.IndexOf(strEti1ka); if (-1 != strEtusivu.IndexOf(strEti1ka)) { strEtusivu = strEtusivu.Remove(iOnPaikalla + strEti1ka.Length); } char[] charsToTrim = { '{', ' ', '}', '\n', '\r', '[', ']' }; List <string> table = new List <string>(); table.AddRange(HtmlToList(strEtusivu)); ////tablepurku string strKunta = strPaikka; foreach (var strRivi in table) { string[] asOsat = strRivi.Trim(charsToTrim).Split(new string[] { "][" }, StringSplitOptions.RemoveEmptyEntries);; Tarjous clTarjous = new Tarjous(strKunta, "Hilma"); foreach (var strOsa in asOsat) { string[] asOppi = strOsa.Split(new string[] { ":=" }, StringSplitOptions.RemoveEmptyEntries); if (asOppi.First().ToLower().Contains("db")) { string strTemp = asOppi.Last(); clTarjous.strDataBase = strTemp; } if (asOppi.First().ToLower().Contains("lnk")) { string strTemp = asOppi.Last(); clTarjous.strAlkuperainenLinkki = strHilma + strTemp; } if (asOppi.First().ToLower().Contains("nimi")) { string strTemp = asOppi.Last(); clTarjous.strPyynto = strTemp; } if (asOppi.First().ToLower().Contains("julk")) { string strTemp = asOppi.Last(); clTarjous.strJulkaistu = strTemp; } if (asOppi.First().ToLower().Contains("määrä")) { string strTemp = asOppi.Last(); clTarjous.strMaaraAika = strTemp; } if (asOppi.First().ToLower().Contains("ilmo")) { string strTemp = asOppi.Last(); clTarjous.strIlmoitusTyyppi = strTemp; } if (asOppi.First().ToLower().Contains("osta")) { strKunta = asOppi.Last(); clTarjous.VaihdaYksikko(strKunta); } } lstTajoukset.Add(clTarjous); } return(false); }