//İlgili sorguya ait web sitesi url değerlerini getirmeyi sağlayan fonksiyon. public DataTable ilgiliSorguyaDairWebSitesiUrlDegerleriniGetir(string sqlSorgusu) { try { if (DataTable[1] != null) { DataTable[1].Clear(); } else { DataTable[1] = new DataTable(); } SqlCommand = sorguCommentiniGetir(sqlSorgusu, SqliteConnection); if (SqlCommand != null) { dataAdapter = sqliteDataAdapterYarat(SqlCommand); dataAdapter = sqliteDataAdapterYarat(SqlCommand); if (dataAdapter != null) { dataAdapter.Fill(DataTable[1]); } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, "Web sitesi servis urllerine ait veritabani tarafinda dataAdapter olusturulamadi.."); ChromeDriverSingleton.kirmiziYaz("Web sitesi servis urllerine ait veritabani tarafinda dataAdapter olusturulamadi.."); } } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, "Web sitesi servis urllerine ait veriler okunamadi.."); ChromeDriverSingleton.kirmiziYaz("Web sitesi servis urllerine ait veriler okunamadi.."); } if (VeritabaniBaglantisiniKes()) { return(DataTable[1]); } else { return(null); } } catch (Exception ex) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, sqlSorgusu + " sorgusuna ait veri bulunamadi.. Hata:" + ex.ToString()); ChromeDriverSingleton.griYaz(sqlSorgusu + " sorgusuna ait veri bulunamadi.. Hata: " + ex.ToString()); return(null); } }
//Veritabanında verilen id'li değerin olup olmadığını sorgulayan fonksiyon. public bool idDegeriVarMi(int ID) { try { if (DataTable[0] != null) { DataTable[0].Clear(); } else { DataTable[0] = new DataTable(); } SqlCommand = sorguCommentiniGetir("SELECT * FROM webSiteleri WHERE ID=@ID", SqliteConnection); SQLiteParameter prm1 = new SQLiteParameter("ID", ID); SqlCommand.Parameters.Add(prm1); dataAdapter = sqliteDataAdapterYarat(SqlCommand); dataAdapter.Fill(DataTable[0]); VeritabaniBaglantisiniKes(); if (DataTable[0].Rows.Count > 0) { return(true); } else { return(false); } } catch (Exception ex) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, " Veritabanından datalar çekilirken hata meydana geldi.. Hata: " + ex.ToString()); ChromeDriverSingleton.griYaz(" Veritabanından datalar çekilirken hata meydana geldi.. Hata: " + ex.ToString()); return(false); } }
//Veritabanındaki var olan siteyi silmeye yarayan fonskyion. public static void varOlanSiteyiSil() { string alinanId = ""; int id = 0; Console.WriteLine(); Console.WriteLine("-----VAR OLAN SITEYI SILME EKRANI-----"); varOlanSiteleriGoruntule(); Console.WriteLine(); do { Console.WriteLine("Lütfen silmek istediginiz sitenin Id'sini giriniz.."); alinanId = Console.ReadLine(); if (string.IsNullOrEmpty(alinanId)) { Console.WriteLine("Lutfen gecerli bir id numarasi giriniz.."); } else { try { id = Convert.ToInt32(alinanId); if (Fonksiyonlar.sqliteVeritabanim.idDegeriVarMi(id)) { break; } else { Console.WriteLine(id + " idli item veritabaninda bulunmamaktadir.."); } } catch (Exception) { Console.WriteLine("Lütfen gecerli bir id numarasi giriniz.."); } } } while (true); if (Fonksiyonlar.sqliteVeritabanim.idDegeriVarMi(id)) { if (Fonksiyonlar.sqliteVeritabanim.SQLiteVeritabanindanVeriSil(id)) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, id + " Id'li item basariyla silinmistir.."); ChromeDriverSingleton.yesilYaz(id + " Id'li item basariyla silinmistir.."); } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, id + " Id'li item silinememistir.."); ChromeDriverSingleton.kirmiziYaz(id + " Id'li item silinememistir.."); } } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, id + " idli item veritabaninda bulunmamaktadir.."); ChromeDriverSingleton.griYaz(id + " idli item veritabaninda bulunmamaktadir.."); } }
//Verilen site adına login işlemi yapan fonksiyon. public static void LoginIslemiYap(string SiteAdi) { string KullaniciAdi = "ygtest", Sifre = "test2015"; ChromeDriverSingleton.yeniKopyaYarat(); //Sitenin yüklenme süresini 60 sn olarak ayarlar.. ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(ChromeDriverSingleton.timeoutDegeri); //Console.WriteLine(" ------" + ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().PageLoad); //Elementin yüklenme süresini 15 saniye olarak ayarlar.. ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(15); //Cookieleri silerek tekrardan login ekranina gelinmesi işlemini yapan fonksiyonlar.. ChromeDriverSingleton.getDriverInstance().Manage().Cookies.DeleteAllCookies(); string[] epostaMesaji = ChromeDriverSingleton.epostaMesaji; if (!ChromeDriverSingleton.parametreIleMiGeldi) { ChromeDriverSingleton.EpostalariSifirla(); epostaMesaji = ChromeDriverSingleton.epostaMesaji; } //Tekrar tekrar chromeDriver yaratılmamaktadır.. IWebDriver driver = ChromeDriverSingleton.getDriverInstance(); bool webSitesiCevapVerdiMi = false; //Chrome driver ekranının minimum olması sağlandı.. //driver.Manage().Window.Minimize(); WebSitesi ilgiliWebSitesi = WebSitesiniGetir(SiteAdi); System.Threading.Thread.Sleep(1000); if (ilgiliWebSitesi != null) { if (SiteAdi.Equals(ilgiliWebSitesi._siteAdi)) { webSitesiCevapVerdiMi = SiteCevapVerdiMi(driver, ilgiliWebSitesi._url, KullaniciAdi, epostaMesaji); } else { webSitesiCevapVerdiMi = SiteCevapVerdiMi(driver, ilgiliWebSitesi._url, KullaniciAdi, epostaMesaji); } driver = ChromeDriverSingleton.getDriverInstance(); ChromeDriverSingleton.exceptionSiteCevapVerdiMiCount = 0; ChromeDriverSingleton.siteCevabiOlumluMu = false; if (webSitesiCevapVerdiMi) { KullaniciGirisiYap(driver, KullaniciAdi, Sifre, ilgiliWebSitesi, epostaMesaji); } else { ChromeDriverSingleton.siteCevabiOlumluMu = false; } ChromeDriverSingleton.exceptionCountWebSiteleriSifirla(); ChromeDriverSingleton.exceptionLoginSonrasiCountSifirla(); servisUrlleriniKontrolEt(ilgiliWebSitesi, epostaMesaji); if (!ChromeDriverSingleton.parametreIleMiGeldi) { EpostaGonder(ChromeDriverSingleton.siteCevabiOlumluMu, KullaniciAdi, SiteAdi, epostaMesaji); ChromeDriverSingleton.siteCevabiOlumluMu = false; } webSitesiCevapVerdiMi = false; } else { ChromeDriverSingleton.griYaz("İlgili web sitesi veritabaninda bulunamadi.."); } }
//Verilen dataTable'daki değerleri listeye atayan fonksiyon. public bool dataTabledakiDegerleriListeyeAta(DataTable dataTable1, DataTable dataTable2) { List <string> servisUrllerim = new List <string>(); string[] servisUrllerimArray = null; if (dataTable1 != null) { WebSitesi[] websiteBilgileri = new WebSitesi[dataTable1.Rows.Count]; if (dataTable1.Rows.Count > 0) { for (int j = 0; j < dataTable1.Rows.Count; j++) { websiteBilgileri[j] = new WebSitesi(Convert.ToInt32(dataTable1.Rows[j].ItemArray[0]), Convert.ToString(dataTable1.Rows[j].ItemArray[1]), Convert.ToString(dataTable1.Rows[j].ItemArray[2]), Convert.ToString(dataTable1.Rows[j].ItemArray[3]), Convert.ToString(dataTable1.Rows[j].ItemArray[4]), Convert.ToString(dataTable1.Rows[j].ItemArray[5]), Convert.ToString(dataTable1.Rows[j].ItemArray[6]), Convert.ToBoolean(dataTable1.Rows[j].ItemArray[7]), Convert.ToBoolean(dataTable1.Rows[j].ItemArray[8]), null, Convert.ToString(DataTable[0].Rows[j].ItemArray[9])); if (dataTable2 != null) { //Url alma işlemleri burada yapılacaktır.. if (dataTable2.Rows.Count > 0) { for (int a = 0; a < dataTable2.Rows.Count; a++) { if (Convert.ToInt32(dataTable1.Rows[j].ItemArray[0]) == Convert.ToInt32(dataTable2.Rows[a].ItemArray[0])) { servisUrllerim.Add(Convert.ToString(dataTable2.Rows[a].ItemArray[1])); } } if (servisUrllerim.Any()) { servisUrllerimArray = new string[servisUrllerim.Count()]; for (int i = 0; i < servisUrllerim.Count(); i++) { servisUrllerimArray[i] = servisUrllerim.ElementAt(i); } if (servisUrllerimArray[0] != null) { websiteBilgileri[j]._servisUrlleri = servisUrllerimArray; } if (servisUrllerim.Any()) { servisUrllerim.Clear(); } } } } else { Console.WriteLine("Veritabaninda web sitelerine ait url degerleri bulunmamaktadir.."); } } if (Fonksiyonlar.WebSiteleri.Any()) { Fonksiyonlar.WebSiteleri.Clear(); } for (int a = 0; a < websiteBilgileri.Length; a++) { Fonksiyonlar.WebSiteleri.Add(websiteBilgileri[a]); } return(true); } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, "Veritabaninda herhangi bir bilgi bulunmamaktadir.."); ChromeDriverSingleton.griYaz("Veritabaninda herhangi bir bilgi bulunmamaktadir.."); return(false); } } return(true); }
//Sqlite veritabanına veri eklemeyi sağlayan fonksiyon. public bool SQLiteVeritabaninaVeriEkle(WebSitesi gelenWebSitesiElementi) { int errorDegeri = 0, girisEkraniDegeri = 0, sonKisimdakiIdDegeri = 0; string sqlWebSitesi, sqlServisUrlleri; try { if (gelenWebSitesiElementi._errorEtiketiIdMi) { errorDegeri = 1; } else { errorDegeri = 0; } if (gelenWebSitesiElementi._girisEkraniElementiNameMi) { girisEkraniDegeri = 1; } else { girisEkraniDegeri = 0; } SQLiteParameter prm1 = new SQLiteParameter("siteAdi", gelenWebSitesiElementi._siteAdi); SQLiteParameter prm2 = new SQLiteParameter("loginOlduktanSonraBakilacakElement", gelenWebSitesiElementi._loginOlduktanSonraBakilacakElement); SQLiteParameter prm3 = new SQLiteParameter("kullaniciAdiEtiketi", gelenWebSitesiElementi._kullaniciAdiEtiketi); SQLiteParameter prm4 = new SQLiteParameter("sifreEtiketi", gelenWebSitesiElementi._sifreEtiketi); SQLiteParameter prm5 = new SQLiteParameter("errorEtiketi", gelenWebSitesiElementi._errorEtiketi); SQLiteParameter prm6 = new SQLiteParameter("url", gelenWebSitesiElementi._url); SQLiteParameter prm7 = new SQLiteParameter("errorEtiketiIdMi", errorDegeri); SQLiteParameter prm8 = new SQLiteParameter("girisEkraniElementiNameMi", girisEkraniDegeri); SQLiteParameter prm9 = new SQLiteParameter("parametre", gelenWebSitesiElementi._parametre); sqlWebSitesi = "INSERT INTO webSiteleri (siteAdi, loginOlduktanSonraBakilacakElement,kullaniciAdiEtiketi, sifreEtiketi, errorEtiketi, url, errorEtiketiIdMi, girisEkraniElementiNameMi, parametre) " + "VALUES (@siteAdi, @loginOlduktanSonraBakilacakElement, @kullaniciAdiEtiketi, @sifreEtiketi, @errorEtiketi , @url, @errorEtiketiIdMi, @girisEkraniElementiNameMi, @parametre)"; SqlCommand = sorguCommentiniGetir(sqlWebSitesi, SqliteConnection); if (SqlCommand != null) { SqlCommand.Parameters.Add(prm1); SqlCommand.Parameters.Add(prm2); SqlCommand.Parameters.Add(prm3); SqlCommand.Parameters.Add(prm4); SqlCommand.Parameters.Add(prm5); SqlCommand.Parameters.Add(prm6); SqlCommand.Parameters.Add(prm7); SqlCommand.Parameters.Add(prm8); SqlCommand.Parameters.Add(prm9); } SqlCommand.ExecuteNonQuery(); VeritabaniBaglantisiniKes(); DataTable[0] = ilgiliSorguyaDairWebSitesiDegerleriniGetir("SELECT MAX(ID) AS ID FROM webSiteleri"); //Son eklenen degerin id numarasini veren islem.. if (DataTable[0].Rows.Count > 0) { sonKisimdakiIdDegeri = Convert.ToInt32(DataTable[0].Rows[0]["ID"]); } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, sonKisimdakiIdDegeri + " id'li veri, veritabaninda deger bulunamadi.."); ChromeDriverSingleton.griYaz("Veritabaninda deger bulunamadi.."); return(false); } sqlServisUrlleri = "INSERT INTO servisUrlleri (ID, servisUrl) VALUES (@ID, @servisUrl)"; if (SqlCommand != null) { for (int i = 0; i < gelenWebSitesiElementi._servisUrlleri.Length; i++) { if (!string.IsNullOrEmpty(gelenWebSitesiElementi._servisUrlleri[i])) { SqlCommand = sorguCommentiniGetir(sqlServisUrlleri, SqliteConnection); SQLiteParameter prm10 = new SQLiteParameter("ID", sonKisimdakiIdDegeri); SQLiteParameter prm11 = new SQLiteParameter("servisUrl", gelenWebSitesiElementi._servisUrlleri[i]); SqlCommand.Parameters.Add(prm10); SqlCommand.Parameters.Add(prm11); SqlCommand.ExecuteNonQuery(); VeritabaniBaglantisiniKes(); } else { break; } } } return(true); } catch (Exception ex) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, "SQLite veritabanina veri eklerken bir problem oluştu.. Hata: " + ex.ToString()); ChromeDriverSingleton.kirmiziYaz("SQLite veritabanina veri eklerken bir problem oluştu.. Hata: " + ex.ToString()); return(false); } }