private List <SorguNitelik> getirNitelik(string sorguSozcesi)
        {
            try
            {
                SorguAnaliz         sorgu = new SorguAnaliz();
                List <SorguNitelik> liste = new List <SorguNitelik>();

                if (String.IsNullOrEmpty(sorguSozcesi))
                {
                    throw new ArgumentNullException();
                }

                sorguSozcesi = Arac.KucultveKirp(sorguSozcesi);

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.Akademik))
                {
                    liste.Add(SorguNitelik.Akademik);
                    return(liste);
                }

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.Cinsiyet))
                {
                    liste.Add(SorguNitelik.Cinsiyet);
                }

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.KanRh))
                {
                    liste.Add(SorguNitelik.KanRh);
                    return(liste);
                }

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.MedeniHali))
                {
                    liste.Add(SorguNitelik.MedeniHali);
                }

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.TurkiyeCumhuriyetiKimlikNo))
                {
                    liste.Add(SorguNitelik.TurkiyeCumhuriyetiKimlikNo);
                    return(liste);
                }

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.DogumTarihi))
                {
                    liste.Add(SorguNitelik.DogumTarihi);
                    return(liste);
                }

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.SicilNo))
                {
                    liste.Add(SorguNitelik.SicilNo);
                    return(liste);
                }

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.Kadro))
                {
                    liste.Add(SorguNitelik.Kadro);
                }

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.Sinif))
                {
                    liste.Add(SorguNitelik.Sinif);
                    return(liste);
                }
                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.Adi))
                {
                    liste.Add(SorguNitelik.Adi);
                }
                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.Soyadi))
                {
                    liste.Add(SorguNitelik.Soyadi);
                }

                if (sorgu.nitelikteMiSorgu(sorguSozcesi, SorguNitelik.KizlikSoyadi))
                {
                    liste.Add(SorguNitelik.KizlikSoyadi);
                }

                return(liste);
            }
            catch (ArgumentException)
            {
            }
            catch (Exception hata)
            {
                this.yazHata(hata);
            }

            return(new List <SorguNitelik>());
        }
        private IEnumerable <Calisan> sorgulaCalisan(IEnumerable <SorguNitelik> nitelikListe, string sorguSozcesi)
        {
            try
            {
                DateTime              dogumTarihi    = Sabitler.BosTarih;
                SorguAnaliz           analiz         = new SorguAnaliz();
                AkademikUnvani        unvan          = AkademikUnvani.Tanimsiz;
                Cinsiyeti             cinsi          = Cinsiyeti.Tanimsiz;
                List <Calisan>        calisanListe   = new List <Calisan>();
                List <SorguNitelik>   nitelikListesi = new List <SorguNitelik>();
                IEnumerable <Calisan> kismiListe     = new List <Calisan>();

                if (nitelikListe == null)
                {
                    throw new ArgumentNullException();
                }
                if (String.IsNullOrEmpty(sorguSozcesi))
                {
                    throw new ArgumentNullException();
                }

                nitelikListesi = nitelikListe.ToList();

                foreach (SorguNitelik nitelik in nitelikListe)
                {
                    if (nitelik == SorguNitelik.Tanimsiz)
                    {
                        continue;
                    }

                    if (nitelik == SorguNitelik.Adi)
                    {
                        kismiListe = this._calisanRepository.GetirCalisanListe(sorguSozcesi);
                    }
                    else if (nitelik == SorguNitelik.Akademik)
                    {
                        unvan      = analiz.getirAkademikUnvani(sorguSozcesi);
                        kismiListe = this._calisanRepository.GetirCalisanListe(unvan);
                    }
                    else if (nitelik == SorguNitelik.Cinsiyet)
                    {
                        cinsi      = analiz.getirCinsiyeti(sorguSozcesi);
                        kismiListe = this._calisanRepository.GetirCalisanListe(cinsi);
                    }
                    else if (nitelik == SorguNitelik.DogumTarihi)
                    {
                        if (!DateTime.TryParse(sorguSozcesi, out dogumTarihi))
                        {
                            continue;
                        }

                        kismiListe = this._calisanRepository.GetirCalisanListe(dogumTarihi);
                    }
                    else if (nitelik == SorguNitelik.Kadro)
                    {
                        //TODO: yapılacak.
                    }
                    else if (nitelik == SorguNitelik.KanRh)
                    {
                        //TODO: yapılacak.
                    }
                    else if (nitelik == SorguNitelik.KizlikSoyadi)
                    {
                        //TODO: yapılacak.
                    }
                    else if (nitelik == SorguNitelik.MedeniHali)
                    {
                        //TODO: yapılacak.
                    }
                    else if (nitelik == SorguNitelik.SicilNo)
                    {
                        Calisan calisan = this._calisanRepository.GetirCalisanSicileGore(sorguSozcesi);

                        if (calisan != null)
                        {
                            List <Calisan> yerelListe = new List <Calisan>();
                            yerelListe.Add(calisan);
                            kismiListe = yerelListe;
                        }
                    }
                    else if (nitelik == SorguNitelik.Sinif)
                    {
                        //TODO: yapılacak.
                    }
                    else if (nitelik == SorguNitelik.Soyadi)
                    {
                        kismiListe = this._calisanRepository.GetirCalisanListeSoyadinaGore(sorguSozcesi);
                    }
                    else if (nitelik == SorguNitelik.TurkiyeCumhuriyetiKimlikNo)
                    {
                        Calisan calisan = this._calisanRepository.GetirCalisan(sorguSozcesi);

                        if (calisan != null)
                        {
                            List <Calisan> yerelListe = new List <Calisan>();
                            yerelListe.Add(calisan);
                            kismiListe = yerelListe;
                        }
                    }

                    if (kismiListe == null)
                    {
                        this.yazHata(new IslemBasarisizHatasi(Arac.AlHataLokasyonu <CalisanIsKurali>(147)));
                        continue;
                    }

                    calisanListe.AddRange(kismiListe.ToList());

                    kismiListe = new List <Calisan>();
                }

                return(calisanListe);
            }
            catch (ArgumentException)
            {
            }
            catch (DKMPHataAltyapi.Soyut.HataBase hata)
            {
                this.yazHata(hata);
            }
            catch (Exception hata)
            {
                this.yazHata(hata);
            }

            return(new List <Calisan>());
        }