Exemplo n.º 1
0
        private void update_db_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
            string filename = Crawler.OSYMdenGetir();

            if (filename != null)
            {
                Cursor = Cursors.Default;
                string[] takvimler = Directory.GetFiles(".\\takvim_data", "*.json", SearchOption.AllDirectories);
                cbTakvimSec.Items.Clear();
                foreach (string takvim in takvimler)
                {
                    FileInfo f_takvim = new FileInfo(takvim);

                    cbTakvimSec.Items.Add(f_takvim.Name);
                }
                SinavTakvimi tk = Takvim.DosyadanYukle(filename);
                this.Text     = tk.Baslik + "(" + tk.Donem + ")";
                txtDonem.Text = tk.Donem.ToString();
                Takvim.Goster(tk, dgvTakvim);
                MessageBox.Show("Takvim veritabanı güncellendi!", this.Text);
            }
            else
            {
                Cursor = Cursors.Default;
                MessageBox.Show("Takvim veritabanı güncelleneMEdi! Lütfen detaylar için günlük kaydına (app.log) bakın.", this.Text);
            }
        }
Exemplo n.º 2
0
        public static SinavTakvimi DosyadanYukle(string filename)
        {
            StreamReader sr            = new StreamReader(new FileStream(filename, FileMode.Open));
            SinavTakvimi sinav_takvimi = JsonConvert.DeserializeObject <SinavTakvimi>(sr.ReadToEnd());

            sr.Close();
            return(sinav_takvimi);
        }
Exemplo n.º 3
0
        private void cbTakvimSec_SelectedIndexChanged(object sender, EventArgs e)
        {
            string       filename = ".\\takvim_data\\" + cbTakvimSec.SelectedItem.ToString();
            SinavTakvimi takvim   = Takvim.DosyadanYukle(filename);

            this.Text     = takvim.Baslik + "(" + takvim.Donem + ")";
            txtDonem.Text = takvim.Donem.ToString();
            StringBuilder sb = new StringBuilder();

            foreach (string item in takvim.Uyarilar)
            {
                sb.Append(item).Append("\r\n");
            }
            txtUyarilar.Text = sb.ToString();
            Takvim.Goster(takvim, dgvTakvim);
        }
Exemplo n.º 4
0
        public static void Goster(SinavTakvimi sinav_takvimi, DataGridView gridview)
        {
            gridview.Rows.Clear();
            gridview.Columns.Clear();
            try
            {
                List <Sinav> sinavlar = sinav_takvimi.Sinavlar.ToList();
                DataGridViewTextBoxColumn sirano_kolonu = new DataGridViewTextBoxColumn();
                sirano_kolonu.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                sirano_kolonu.FillWeight   = 20;
                sirano_kolonu.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
                gridview.Columns.Add(sirano_kolonu);

                foreach (Kolon kolon in sinav_takvimi.Kolonlar)
                {
                    DataGridViewTextBoxColumn text_kolonu = new DataGridViewTextBoxColumn();
                    text_kolonu.Name         = kolon.Etiketi;
                    text_kolonu.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    text_kolonu.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
                    gridview.Columns.Add(text_kolonu);
                }

                foreach (Sinav sinav in sinavlar)
                {
                    int             satir_no = gridview.Rows.Add();
                    DataGridViewRow satir    = gridview.Rows[satir_no];
                    satir.Cells[0].Value = satir_no + 1;
                    satir.Cells[1].Value = sinav.Adi + " (" + sinav.KisaAdi + ")" + "\r\n" + sinav.Aciklama;
                    if (sinav.Tarihi.HasValue)
                    {
                        int    zaman_farki    = (sinav.Tarihi.Value - DateTime.Now).Days;
                        int    zaman_farki_ay = (zaman_farki / 30);
                        string uyari          = " (";
                        if (zaman_farki < 0)
                        {
                            zaman_farki    = Math.Abs(zaman_farki);
                            zaman_farki_ay = Math.Abs(zaman_farki_ay);
                            if (zaman_farki < 30)
                            {
                                uyari += zaman_farki + " gün geçmiş)";
                            }
                            else
                            {
                                uyari += zaman_farki_ay + " ay geçmiş)";
                            }
                        }
                        else
                        {
                            if (zaman_farki == 0)
                            {
                                uyari += "Sınav bugün!)";
                            }
                            else if (zaman_farki < 30)
                            {
                                uyari += zaman_farki + " gün var)";
                            }
                            else
                            {
                                zaman_farki_ay = (zaman_farki / 30);
                                uyari         += zaman_farki_ay + " ay var)";
                            }
                        }
                        satir.Cells[2].Value = sinav.Tarihi.Value.ToShortDateString() + uyari;
                    }
                    if (sinav.Basvuru != null)
                    {
                        foreach (Basvuru basvuru in sinav.Basvuru)
                        {
                            satir.Cells[3].Value += basvuru.Turu + (basvuru.Turu != null ? "\r\n" : "");
                            int    zaman_farki = (basvuru.BaslangicTarihi.Value - DateTime.Now).Days;
                            string uyari       = " (";
                            if (zaman_farki < 0)
                            {
                                uyari += "Başvurular başlamış)";
                            }
                            else
                            {
                                if (zaman_farki == 0)
                                {
                                    uyari += "Bugün başladı!)";
                                }
                                else if (zaman_farki < 30)
                                {
                                    uyari += zaman_farki + " gün var)";
                                }
                                else
                                {
                                    int zaman_farki_ay = (zaman_farki / 30);
                                    uyari += zaman_farki_ay + " ay var)";
                                }
                            }
                            satir.Cells[3].Value += basvuru.BaslangicTarihi.Value.ToShortDateString() + uyari + "\r\n";

                            zaman_farki = (basvuru.BitisTarihi.Value - DateTime.Now).Days;
                            uyari       = " (";
                            if (zaman_farki < 0)
                            {
                                uyari += "Başvurular bitmiş!)";
                            }
                            else
                            {
                                if (zaman_farki == 0)
                                {
                                    uyari += "Bugün son gün!)";
                                }
                                else if (zaman_farki < 30)
                                {
                                    uyari += zaman_farki + " gün var)";
                                }
                                else
                                {
                                    int zaman_farki_ay = (zaman_farki / 30);
                                    uyari += zaman_farki_ay + " ay var)";
                                }
                            }
                            satir.Cells[3].Value += basvuru.BitisTarihi.Value.ToShortDateString() + uyari + ((basvuru.Turu != null && sinav.Basvuru.Last() != basvuru) ? "\r\n" : "");
                        }
                    }
                    if (sinav.GecBasvuru != null)
                    {
                        foreach (Basvuru basvuru in sinav.GecBasvuru)
                        {
                            satir.Cells[4].Value += basvuru.Turu + (basvuru.Turu != null ? "\r\n" : "");
                            int    zaman_farki = (basvuru.BaslangicTarihi.Value - DateTime.Now).Days;
                            string uyari       = " (";
                            if (zaman_farki < 0)
                            {
                                uyari += "Başvurular başlamış)";
                            }
                            else
                            {
                                if (zaman_farki == 0)
                                {
                                    uyari += "Bugün başladı!)";
                                }
                                else if (zaman_farki < 30)
                                {
                                    uyari += zaman_farki + " gün var)";
                                }
                                else
                                {
                                    int zaman_farki_ay = (zaman_farki / 30);
                                    uyari += zaman_farki_ay + " ay var)";
                                }
                            }
                            satir.Cells[4].Value += basvuru.BaslangicTarihi.Value.ToShortDateString() + uyari + "\r\n";
                            zaman_farki           = (basvuru.BitisTarihi.Value - DateTime.Now).Days;
                            uyari = " (";
                            if (zaman_farki < 0)
                            {
                                uyari += "Başvurular bitmiş!)";
                            }
                            else
                            {
                                if (zaman_farki == 0)
                                {
                                    uyari += "Bugün son gün!)";
                                }
                                else if (zaman_farki < 30)
                                {
                                    uyari += zaman_farki + " gün var)";
                                }
                                else
                                {
                                    int zaman_farki_ay = (zaman_farki / 30);
                                    uyari += zaman_farki_ay + " ay var)";
                                }
                            }
                            satir.Cells[4].Value += basvuru.BitisTarihi.Value.ToShortDateString() + uyari + ((basvuru.Turu != null && sinav.GecBasvuru.Last() != basvuru) ? "\r\n" : "");
                        }
                    }
                    if (sinav.SonucAciklamaTarihi.HasValue)
                    {
                        int    zaman_farki = (sinav.SonucAciklamaTarihi.Value - DateTime.Now).Days;
                        string uyari       = " (";
                        if (zaman_farki < 0)
                        {
                            uyari += "Açıklanmış!)";
                        }
                        else
                        {
                            if (zaman_farki == 0)
                            {
                                uyari += "Bu gün açıklanıyor!)";
                            }
                            else if (zaman_farki < 30)
                            {
                                uyari += zaman_farki + " gün var)";
                            }
                            else
                            {
                                int zaman_farki_ay = (zaman_farki / 30);
                                uyari += zaman_farki_ay + " ay var)";
                            }
                        }
                        satir.Cells[5].Value = sinav.SonucAciklamaTarihi.Value.ToShortDateString() + uyari;
                    }
                    satir.Tag = sinav;
                }
            }
            catch (Exception ex)
            {
                Log.e(ex.Message);
            }
        }
Exemplo n.º 5
0
        public static string OSYMdenGetir()
        {
            try
            {
                HtmlWeb       web       = new HtmlWeb();
                string        osym_link = "http://www.osym.gov.tr";
                HtmlDocument  document  = web.Load(osym_link);
                HtmlNode      sinav_takivimi_linki_nodu = document.DocumentNode.SelectSingleNode("//a[@id='DalLink2']");
                StringBuilder link_builder = new StringBuilder();
                link_builder.Append(osym_link);
                link_builder.Append(sinav_takivimi_linki_nodu.Attributes["href"].Value);
                HtmlDocument takvim_document = web.Load(link_builder.ToString());
                string       takvim_basligi  = takvim_document.DocumentNode.SelectSingleNode("//div[@id='upTakvim']/div/div[1]/h1").InnerText.Trim();
                HtmlNode[]   takvim_tablosu  = takvim_document.DocumentNode.SelectNodes("//div[@id='pnlSinavTakvimiBaslik']/following-sibling::div[@class='row']").ToArray();
                HtmlNode[]   uyarilar        = takvim_document.DocumentNode.SelectNodes("//div[@id='upTakvim']/div/div[3]/p").ToArray();
                SinavTakvimi sinav_takvimi   = new SinavTakvimi();
                sinav_takvimi.Baslik = takvim_basligi;
                HtmlNode baslik_satiri = takvim_document.DocumentNode.SelectNodes("//div[@id='pnlSinavTakvimiBaslik']//div").FirstOrDefault(); //q_takvim_tablosu.Dequeue();
                int      baslik_say    = baslik_satiri.ChildNodes.Count;

                List <Kolon> kolonlar = new List <Kolon>();

                foreach (HtmlNode baslik in baslik_satiri.ChildNodes)
                {
                    string baslik_text = baslik.InnerText.Trim();
                    if (!baslik_text.Equals(string.Empty))
                    {
                        Log.i("Başlık Etiketi: " + baslik_text, false);
                        string baslik_adi = baslik_text.ToLower()
                                            .Replace('*', ' ').Trim()
                                            .Replace('ğ', 'g')
                                            .Replace('ü', 'u')
                                            .Replace('ş', 's')
                                            .Replace('ı', 'i')
                                            .Replace('ö', 'o')
                                            .Replace('ç', 'c')
                                            .Replace('-', '_')
                                            .Replace(' ', '_');
                        Log.i("Başlık Adı: " + baslik_adi, false);
                        kolonlar.Add(new Kolon()
                        {
                            Adi = baslik_adi, Etiketi = baslik_text
                        });
                    }
                }

                Log.i("Başlık Kolonları sayısı: " + kolonlar.Count, false);

                sinav_takvimi.Kolonlar = kolonlar;

                List <Sinav> sinavlar = new List <Sinav>();
                foreach (HtmlNode item in takvim_tablosu)
                {
                    if (item.ChildNodes.Count > 1)
                    {
                        Sinav      sinav               = new Sinav();
                        HtmlNode[] sutunlar            = item.Elements("div").ToArray();
                        HtmlNode   sinavin_adi_nodu    = sutunlar[0];
                        HtmlNode   sinavin_tarihi_nodu = sutunlar[1];
                        HtmlNode   basvuru_nodu        = sutunlar[2];
                        HtmlNode   gec_basvuru_nodu    = sutunlar[3];
                        HtmlNode   sonuc_tarihi_nodu   = sutunlar[4];

                        sinav.Adi      = sinavin_adi_nodu.SelectSingleNode(".//br/following-sibling::text()[1]").InnerText.Trim();
                        sinav.KisaAdi  = sinavin_adi_nodu.Element("strong").InnerText.Trim();
                        sinav.Aciklama = sinavin_adi_nodu.SelectSingleNode(".//br/following-sibling::text()[2]").InnerText.Trim();
                        sinav.Baglanti = osym_link + sinavin_adi_nodu.Element("strong").Element("a").Attributes["href"].Value;

                        if (!sinavin_tarihi_nodu.InnerText.Trim().Equals(String.Empty))
                        {
                            sinav.Tarihi = DateTime.Parse(sinavin_tarihi_nodu.InnerText.Trim());
                        }
                        else
                        {
                            sinav.Tarihi = null;
                        }

                        if (!basvuru_nodu.InnerText.Trim().Equals(String.Empty))
                        {
                            Basvuru basvuru = new Basvuru();
                            string  basvuru_baslangic_tarihi = basvuru_nodu.SelectSingleNode(".//br/preceding-sibling::text()").InnerText.Trim();
                            string  basvuru_bitis_tarihi     = basvuru_nodu.SelectSingleNode(".//br/following-sibling::text()").InnerText.Trim();
                            basvuru.BaslangicTarihi = DateTime.Parse(basvuru_baslangic_tarihi);
                            basvuru.BitisTarihi     = DateTime.Parse(basvuru_bitis_tarihi);
                            sinav.Basvuru           = new List <Basvuru>()
                            {
                                basvuru
                            };
                        }
                        else
                        {
                            sinav.Basvuru = null;
                        }

                        if (!gec_basvuru_nodu.InnerText.Trim().Equals(String.Empty))
                        {
                            Basvuru gecbasvuru = new Basvuru();
                            string  gec_basvuru_baslangic_tarihi = gec_basvuru_nodu.SelectSingleNode(".//br/preceding-sibling::text()").InnerText.Trim();
                            string  gec_basvuru_bitis_tarihi     = gec_basvuru_nodu.SelectSingleNode(".//br/following-sibling::text()").InnerText.Trim();
                            gecbasvuru.BaslangicTarihi = DateTime.Parse(gec_basvuru_baslangic_tarihi);
                            gecbasvuru.BitisTarihi     = DateTime.Parse(gec_basvuru_bitis_tarihi);
                            sinav.GecBasvuru           = new List <Basvuru>()
                            {
                                gecbasvuru
                            };
                        }
                        else
                        {
                            sinav.GecBasvuru = null;
                        }
                        if (!sonuc_tarihi_nodu.InnerText.Trim().Equals(String.Empty))
                        {
                            sinav.SonucAciklamaTarihi = DateTime.Parse(sonuc_tarihi_nodu.InnerText.Trim());
                        }
                        else
                        {
                            sinav.SonucAciklamaTarihi = null;
                        }
                        sinavlar.Add(sinav);
                    }
                }
                sinav_takvimi.Sinavlar = sinavlar;
                List <string> uyarilar_list = new List <string>();
                foreach (HtmlNode node in uyarilar)
                {
                    string uyari = node.InnerText.Trim();
                    uyarilar_list.Add(uyari);
                }
                sinav_takvimi.Uyarilar = uyarilar_list;
                string filename = ".\\takvim_data\\";
                filename += string.Format("sinav-takvimi-{0}.json", sinav_takvimi.Donem);
                string       json = JsonConvert.SerializeObject(sinav_takvimi);
                StreamWriter sw   = new StreamWriter(new FileStream(filename, FileMode.Create));
                sw.Write(json);
                sw.Close();
                Log.i("Takvim başarılı bir şekilde güncellendi." + String.Format("Dönem ({0})", sinav_takvimi.Donem), true);
                return(filename);
            }
            catch (Exception ex)
            {
                Log.e(ex.Message);
            }
            return(null);
        }