Beispiel #1
0
        static void Main(string[] args)
        {
            // https://belgium.mfa.gov.ua/
            var webPageHandler = new WebPageHandler("https://belgium.mfa.gov.ua/");

            Console.WriteLine($"Hello! I`m starting work on {webPageHandler.Url} page.");

            var emailAddresses = webPageHandler.GetHrefMailToAddresses();

            var addressesCsvFile = new CsvFile(';');

            addressesCsvFile.Headers.Add("Email");

            foreach (string emailAddress in emailAddresses)
            {
                addressesCsvFile.Rows.Add(new List <string>()
                {
                    emailAddress
                });
            }

            if (!Directory.Exists("output"))
            {
                Directory.CreateDirectory("output");
            }

            addressesCsvFile.SaveToFile(@"output\emails.csv");

            Console.WriteLine("Well, copy emails.csv file from output directory to input directory of lab2-email-sender-console project and run it.");
        }
        private void ReadPrices()
        {
            DecimalMeasurements measurements = new DecimalMeasurements();

            try
            {
                using (WebPageHandler teboilPage = new WebPageHandler("https://tilaus.teboil.fi/cgi-bin/nph-cgi/hintalaskuri"))
                {
                    teboilPage.OpenWebBrowser();
                    teboilPage.EnterTextToControl("/html/body/form/div[4]/div/div/div[2]/table/tbody/tr[4]/td/table/tbody/tr[2]/td[2]/input", "1000");
                    teboilPage.EnterTextToControl("/html/body/form/div[4]/div/div/div[2]/table/tbody/tr[4]/td/table/tbody/tr[3]/td[2]/input", "87500");
                    teboilPage.ClickItem("/html/body/form/div[4]/div/div/div[2]/table/tbody/tr[4]/td/table/tbody/tr[15]/td[2]/span/span/table/tbody/tr/td/a");
                    string text = teboilPage.GetText("/html/body/form/div[4]/div/div/div[2]/table/tbody/tr[4]/td/table/tbody/tr[21]/td[2]/table/tbody/tr/td/table/tbody/tr[3]/td[3]");

                    string[] stringSeparators = new string[] { "\r\n" };
                    string[] lines            = text.Split(stringSeparators, StringSplitOptions.None);
                    string[] teboilPrices     = lines[0].Split(' ');

                    decimal teboilPrice = Convert.ToDecimal(teboilPrices[3].Replace(".", ","));

                    AddTeboilListBoxPrice(teboilPrice.ToString());

                    teboilPage.CloseWebBrowser();

                    measurements.AddMeasurement("Teboil", teboilPrice);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(String.Format("Exception: {0}", ex.ToString()));
                measurements.AddMeasurement("Teboil", 0.0);
                AddTeboilListBoxPrice("---");
            }

            try
            {
                using (WebPageHandler lampopuistoPage = new WebPageHandler("https://www.lampopuisto.fi/fi/yksityisille/lammitysoljyn-hinta"))
                {
                    lampopuistoPage.OpenWebBrowser();
                    lampopuistoPage.ClickItem("/html/body/div[1]/div/nav[2]/ul/li[1]/a");
                    lampopuistoPage.EnterTextToControl("/html/body/div[1]/section[2]/div[1]/form[1]/div[2]/div/div/input", "87500");
                    lampopuistoPage.ClickItem("/html/body/div[1]/section[2]/div[1]/form[1]/div[4]/div[1]/div[2]/div/label");
                    lampopuistoPage.EnterTextToControl("/html/body/div[1]/section[2]/div[1]/form[1]/div[4]/div[2]/div[2]/div/input", "1000");
                    Thread.Sleep(2000);

                    string  lampopuistoPrices = lampopuistoPage.GetText("/html/body/div[1]/section[2]/div[3]/div/form/div[4]/div");
                    decimal lampopuistoPrice  = Convert.ToDecimal(lampopuistoPrices);

                    AddLampopuistoListBoxPrice(lampopuistoPrice.ToString());

                    lampopuistoPage.CloseWebBrowser();

                    measurements.AddMeasurement("Lampopuisto", lampopuistoPrice);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(String.Format("Exception: {0}", ex.ToString()));
                measurements.AddMeasurement("Lampopuisto", 0.0);
                AddLampopuistoListBoxPrice("---");
            }

            try
            {
                using (WebPageHandler nestePage = new WebPageHandler("https://www.neste.fi/lammitysoljytilaus"))
                {
                    nestePage.OpenWebBrowser();
                    nestePage.EnterTextToControl("//*[@id=\"edit-county-number\"]", "87500");
                    nestePage.ClickItem("//*[@id=\"edit-submit\"]");
                    Thread.Sleep(6000);
                    string nestePrices = nestePage.GetText("/html/body/div[1]/div/div/div[2]/div[2]/div[2]/div[2]/div/div/div[1]/div/div[4]");

                    string[] nestePriceList = nestePrices.Split(' ');
                    nestePrices = (Convert.ToDecimal(nestePriceList[0]) * 1000).ToString();
                    decimal nestePrice = Convert.ToDecimal(nestePrices);

                    // Delivery costs
                    nestePrice += 50;

                    AddNesteListBoxPrice(nestePrice.ToString());

                    nestePage.CloseWebBrowser();

                    measurements.AddMeasurement("Neste", nestePrice);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(String.Format("Exception: {0}", ex.ToString()));
                measurements.AddMeasurement("Neste", 0.0);
                AddNesteListBoxPrice("---");
            }

            metrics.SaveMetricsToInflux("Test", "oil-prices", measurements);
        }