private void cbIsIlanlari_SelectedIndexChanged(object sender, EventArgs e)
        {
            String str = cbIsIlanlari.Text;

            tbIsIlanBasvuranlar.Text = "";
            bElamanSec.Enabled       = false;
            if (!str.Equals(""))
            {
                IsIlani ilan = ilanlar.GetIlan(GetKey(str));
                if (ilan != null)
                {
                    secilanIlan        = GetKey(str);
                    lIsIlanAd.Text     = ilan.SirketIsim;
                    lIsIlanTanim.Text  = ilan.ilanTanim;
                    bElamanSec.Enabled = true;
                    foreach (var item in ilan.adaylar.heapArray)
                    {
                        if (item != null)
                        {
                            tbIsIlanBasvuranlar.Text += item.IsciVerileri.Isim + " -Uygunluk " + item.Uygunluk.ToString("N2") + "\n";
                        }
                    }
                }
            }
        }
        private void cbİlanlar_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            IsIlani temp = ilanlar.GetIlan(GetKey(cbİlanlar.Text));

            if (temp != null)
            {
                lIlanIsim.Text       = temp.SirketIsim;
                lIlanilanTanim.Text  = temp.ilanTanim;
                tbIlankriterler.Text = temp.kriterler;
                List <String> isciadaylar = new List <string>();
                foreach (Calisan item in isciler)
                {
                    if (item != null)
                    {
                        isciadaylar.Add(item.Isim);
                    }
                }
                if (isciadaylar.Count > 0)
                {
                    cbIlanIcınIscıler.Items.Clear();
                    cbIlanIcınIscıler.Items.AddRange(isciadaylar.ToArray());
                    bIsBasvurusuYap.Enabled = true;
                }
                else
                {
                    bIsBasvurusuYap.Enabled = false;
                }
            }
        }
        private void bIsIlanAra_Click(object sender, EventArgs e)
        {
            bool   bulunduMu = false;
            String aranacak  = tbIsIlanAra.Text;

            if (!aranacak.Equals(""))
            {
                guncellenecekIlan = ilanlar.GetIlan(GetKey(aranacak));
                if (guncellenecekIlan != null)
                {
                    bulunduMu = true;
                }
            }
            if (bulunduMu)
            {
                tbIsIlanAd.Text           = guncellenecekIlan.SirketIsim;
                tbIsIlanAd.Enabled        = false;
                tbIsIlanAdres.Text        = guncellenecekIlan.SirketAdres;
                tbIsIlanSirketTel.Text    = guncellenecekIlan.SirketTel;
                tbIsIlanSirketFaks.Text   = guncellenecekIlan.SirketFaks;
                tbIsIlanSirketEposta.Text = guncellenecekIlan.SirketEposta;
                tbIsIlanTanimi.Text       = guncellenecekIlan.ilanTanim;
                tbIsIlankriterler.Text    = guncellenecekIlan.kriterler;
            }
            else
            {
                MessageBox.Show("Böyle bir ilan bulunamadı !");
                tbIsIlanAd.Enabled = true;
            }
        }
        private void bIsIlanEkle_Click(object sender, EventArgs e)
        {
            IsIlani ilan = new IsIlani()
            {
                SirketIsim   = tbIsIlanAd.Text,
                SirketAdres  = tbIsIlanAdres.Text,
                SirketTel    = tbIsIlanSirketTel.Text,
                SirketFaks   = tbIsIlanSirketFaks.Text,
                SirketEposta = tbIsIlanSirketEposta.Text,
                ilanTanim    = tbIsIlanTanimi.Text,
                kriterler    = tbIsIlankriterler.Text
            };
            int key = GetKey(ilan.SirketIsim);

            if (ilanlar.GetIlan(key) != null)
            {
                MessageBox.Show("Bu isimde ilan vardır. Yeniden deneyin !");
            }
            else
            {
                ilanlar.AddIlan(key, ilan);
                MessageBox.Show("İlan Kaydedildi.");
                tbIsIlanAd.Text           = "";
                tbIsIlanAdres.Text        = "";
                tbIsIlanSirketTel.Text    = "";
                tbIsIlanSirketFaks.Text   = "";
                tbIsIlanSirketEposta.Text = "";
                tbIsIlankriterler.Text    = "";
                tbIsIlanTanimi.Text       = "";
            }
        }
        private void bElamanSec_Click(object sender, EventArgs e)
        {
            IsIlani secilenIlan = ilanlar.GetIlan(secilanIlan);

            if (secilenIlan != null)
            {
                StringBuilder stb  = new StringBuilder();
                StringBuilder stb2 = new StringBuilder();

                StringBuilder stb3 = new StringBuilder();

                StringBuilder stb4 = new StringBuilder();

                HeapNode secilenEleman = secilenIlan.enUygunAdaySec();
                if (secilenEleman != null)
                {
                    stb.Append("Aşağıdaki Elaman İşe Alındı !\n");
                    stb.Append("Ad      : " + secilenEleman.IsciVerileri.Isim + "\n");
                    stb.Append("SirketTelefon : " + secilenEleman.IsciVerileri.SirketTel + "\n");
                    stb.Append("SirketEposta  : " + secilenEleman.IsciVerileri.SirketEposta + "\n");

                    Egitim egitim = secilenEleman.IsciVerileri.egitimleri.First.Value;
                    if (egitim != null)
                    {
                        stb2.Append("Egitim  Durumu\n");
                        stb2.Append("Okul Adı    : " + egitim.OkulIsim + "\n");
                        stb2.Append("Bolumu      : " + egitim.Bolumu + "\n");
                        stb2.Append("NotOrt      : " + egitim.NotOrtalamasi + "\n");
                    }

                    Tecrube deneyim = secilenEleman.IsciVerileri.deneyimleri.First.Value;
                    if (deneyim != null)
                    {
                        stb3.Append("Deneyim  Durumu\n");
                        stb3.Append("Isyeri Adı    : " + deneyim.SirketIsim + "\n");
                        stb3.Append("Pozisyonu     : " + deneyim.Pozisyon + "\n");
                    }
                    stb4.Append("\n\n");
                    stb4.Append("Bu işçi aşağıdaki işe alınmıştır !\n");
                    stb4.Append("İş Yeri Adı  : " + secilenIlan.SirketIsim + "\n");
                    stb4.Append("SirketEposta       : " + secilenIlan.SirketEposta + "\n");
                    stb4.Append("Adress       : " + secilenIlan.SirketAdres + "\n");
                    stb4.Append("\n\n\nİlgili ilan yayından kaldırılmıştır..");
                    ilanlar.RemoveIlan(secilanIlan);
                    MessageBox.Show(stb.ToString());
                    MessageBox.Show(stb2.ToString());
                    MessageBox.Show(stb3.ToString());
                    MessageBox.Show(stb4.ToString());
                }
            }
        }
 private void bIsIlanDuzenle_Click(object sender, EventArgs e)
 {
     if (guncellenecekIlan != null)
     {
         guncellenecekIlan.SirketAdres  = tbIsIlanAdres.Text;
         guncellenecekIlan.SirketTel    = tbIsIlanSirketTel.Text;
         guncellenecekIlan.SirketFaks   = tbIsIlanSirketFaks.Text;
         guncellenecekIlan.SirketEposta = tbIsIlanSirketEposta.Text;
         guncellenecekIlan.ilanTanim    = tbIsIlanTanimi.Text;
         guncellenecekIlan.kriterler    = tbIsIlankriterler.Text;
         guncellenecekIlan = null;
         tbTemizle();
         MessageBox.Show("Düzenleme kaydedildi !");
         tbIsIlanAd.Enabled = true;
     }
 }
        private void bIsBasvurusuYap_Click_1(object sender, EventArgs e)
        {
            String basvuran = cbIlanIcınIscıler.Text;

            if (!basvuran.Equals(""))
            {
                int temp = isciler.FindIndex(x => x.Isim == basvuran);
                if (temp >= 0)
                {
                    bool basvurmusMu = false;

                    IsIlani basvuralacakIlan = ilanlar.GetIlan(GetKey(cbİlanlar.Text));
                    foreach (HeapNode item in basvuralacakIlan.adaylar.heapArray)
                    {
                        if (item != null && item.IsciVerileri.Isim == isciler[temp].Isim)
                        {
                            basvurmusMu = true;
                        }
                    }
                    if (basvurmusMu)
                    {
                        MessageBox.Show(isciler[temp].Isim + " adli aday daha önce başvuru yapmış");
                    }
                    else
                    {
                        double basvuruUygunlugu = (new Random()).NextDouble() * 10.0;
                        basvuralacakIlan.adaylar.Insert(
                            new HeapNode()
                        {
                            IsciVerileri = isciler[temp],
                            Uygunluk     = basvuruUygunlugu
                        }
                            );
                        MessageBox.Show("Aday başarıyla başvurmuştur..Uygunluk Puanı: " + basvuruUygunlugu.ToString("N2"));
                        tbIlanAra.Text             = "";
                        cbIsIlanlari.SelectedValue = "";
                        lIlanIsim.Text             = "-";
                        lIlanilanTanim.Text        = "-";
                        tbIlankriterler.Text       = "";
                    }
                }
                else
                {
                    MessageBox.Show("İşçi Bulunamadı !");
                }
            }
        }
        private void DosyaAc()
        {
            FileStream     fs = new FileStream("eleman.txt", FileMode.Open);
            BufferedStream bs = new BufferedStream(fs);
            StreamReader   sr = new StreamReader(bs);
            String         temp;

            while ((temp = sr.ReadLine()) != null)
            {
                IsciBilgi = new Calisan()
                {
                    Isim         = temp,
                    SirketAdres  = sr.ReadLine(),
                    SirketTel    = sr.ReadLine(),
                    SirketEposta = sr.ReadLine(),
                    Ulke         = sr.ReadLine(),
                    DogumYeri    = sr.ReadLine(),
                    DogumTarihi  = sr.ReadLine(),
                    Hobiler      = sr.ReadLine(),
                    Referanscisi = sr.ReadLine()
                };
                Egitim egitim = new Egitim()
                {
                    OkulIsim      = sr.ReadLine(),
                    Bolumu        = sr.ReadLine(),
                    BaslangicYili = sr.ReadLine(),
                    BitisYili     = sr.ReadLine(),
                    NotOrtalamasi = sr.ReadLine()
                };
                IsciBilgi.egitimleri.AddLast(egitim);
                egitim = new Egitim()
                {
                    OkulIsim      = sr.ReadLine(),
                    Bolumu        = sr.ReadLine(),
                    BaslangicYili = sr.ReadLine(),
                    BitisYili     = sr.ReadLine(),
                    NotOrtalamasi = sr.ReadLine()
                };
                IsciBilgi.egitimleri.AddLast(egitim);
                Tecrube deneyim = new Tecrube()
                {
                    SirketIsim  = sr.ReadLine(),
                    SirketAdres = sr.ReadLine(),
                    Pozisyon    = sr.ReadLine()
                };
                IsciBilgi.deneyimleri.AddLast(deneyim);
                isciler.Add(IsciBilgi);
            }
            fs.Close();


            fs   = new FileStream("sirket.txt", FileMode.Open);
            bs   = new BufferedStream(fs);
            sr   = new StreamReader(bs);
            temp = null;

            while ((temp = sr.ReadLine()) != null)
            {
                IsIlani ilan = new IsIlani()
                {
                    SirketIsim   = temp,
                    SirketAdres  = sr.ReadLine(),
                    SirketTel    = sr.ReadLine(),
                    SirketFaks   = sr.ReadLine(),
                    SirketEposta = sr.ReadLine(),
                    ilanTanim    = sr.ReadLine(),
                    kriterler    = sr.ReadLine()
                };
                int key = GetKey(ilan.SirketIsim);
                ilanlar.AddIlan(key, ilan);
            }
            fs.Close();
        }