コード例 #1
0
        /// <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 &gt;&gt;</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("&amp;", "&");
                            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);
        }
コード例 #2
0
ファイル: Hilma.cs プロジェクト: MarkkuKoivupera/VahtiApp
        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);
        }