Пример #1
0
        //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;
        }
Пример #2
0
        /// <summary>
        /// there are two pages:
        ///     <h2>Voimassa olevat tarjouspyynn&#246;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&#246;</th>
        ///     <th>Kuvaus</th><th>M&#228;&#228;r&#228;aika</th><th>&nbsp;</th></tr>
        ///     ...
        ///     <tr class="even">
        ///     <td><a class="linkki" href="/pohjoispohjanmaa/Tender/BasicInfo?tpg=8ba3a8e0-8f05-49db-b96d-c24e261410ce">300911</a>&nbsp;</td>
        ///     <td><a class="linkki" href="/pohjoispohjanmaa/Tender/BasicInfo?tpg=8ba3a8e0-8f05-49db-b96d-c24e261410ce">Saloisen koulun kotitalousluokan pienkoneet</a>&nbsp;        </td>
        ///     <td>Raahen kaupungin hankintapalvelut pyyt&#228;&#228; tarjouksia Saloisten koulun kotitalousluokan tarvikkeista.&nbsp;</td>
        ///     <td>10.06.2020 12:00</td>
        ///     <td><a class="linkki" href="/pohjoispohjanmaa/Tender/BasicInfo?tpg=8ba3a8e0-8f05-49db-b96d-c24e261410ce&amp;gen=False"><img alt = "Avaa" border="0" class="vertalignmid" src="/Content/images/bt_nuoli.gif" title="Avaa"></img></a>&nbsp;        </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("&#228;", "ä").Replace("&nbsp;", " ").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("&nbsp;", " ").Replace("</a>", " ").Trim(charsToTrim);
                                    clTarjous.strPyynto             = palat[1].Remove(0, palat[1].IndexOf("=") + 1).Replace("&nbsp;", " ").Trim(charsToTrim);
                                    clTarjous.strKuvaus             = palat[2].Remove(0, palat[2].IndexOf("=") + 1).Replace("&nbsp;", " ").Trim(charsToTrim);
                                    clTarjous.strMaaraAika          = palat[3].Remove(0, palat[3].IndexOf("=") + 1).Replace("&nbsp;", " ").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;
        }
Пример #3
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);
        }
Пример #4
0
        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);
        }