/// <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); }