Merhaba Arkadaşlar,
Bir Arama Motoru tasarlıyorum(ekte resimde var).Arama motorunda bazı özel durumlar bunları if ile koşulluyorum.
Mesela,kullanıcı sadece anahtar kelime girdiginde,sadece şehir seçmesi gibi değişik özel kombinasyonları düşünmem gerekiyor.
Benim düşünebildiklerim.(ekteki GetFilter.txt dosyasında var)
//Sadece Anahtar Kelime Girildiginde.
//Şehir Adı Tümü seçildiginde.
// Şehir Tümü Seçili - Kategori Listesi Tümü Seçili-Anahtar Kelime
//Tarih ler seçili Olmadıgında.
//Tarih1 boş(yada o günkü tarih(DateTime.Now.ToShortTimeString()))//Arkadaşlar burda problem yaşıyorum.Tarih olaylarını nasıl yapabilirim.
/Hepsi boş girildiginde(direk ara butonuna basma)
Başka yapmam gereken özel koşullar varmıdır size soruyorum arkadaşlar.
Sizin fikirlerinizi bekliyorum.
Hoşcakalın.Sağlıcakla....
Kodlar
------------------------------------------------------------
public static IEnumerable<TBLIHALE> GetIhaleByFiltersByPaging(string Kelime, string SehirAdi, int KategoriAdi, DateTime tarih1, DateTime tarih2, int PageIndex, int PageSize)
{
List<TBLIHALE> filtre_return = new List<TBLIHALE>();
int startIndex = PageIndex * PageSize;
if (Kelime != null)//Sadace Kelime Girdiginde.
{
using (kamuihaleDataContext db = new kamuihaleDataContext())
{
var sorgu = (from c in db.TBLIHALEs
where c.IHALE_ADI.StartsWith(Kelime)
select c).Skip(PageIndex).Take(PageSize).OrderByDescending(k => k.IHALE_GIRIS_TARIHI);
return sorgu.ToList<TBLIHALE>();
}
}
if (Kelime.Trim() != "")//Anahtar Kelime Girilmediginde.
{
using (kamuihaleDataContext db = new kamuihaleDataContext())
{
var sorgu = (from c in db.TBLIHALEs
where (c.IHALE_SEHIR == SehirAdi) || (c.KATEGORI_ID == KategoriAdi) || (DateTime.Compare(Convert.ToDateTime(c.IHALE_GIRIS_TARIHI), tarih1) >= 0) && (DateTime.Compare(Convert.ToDateTime(c.IHALE_GIRIS_TARIHI), tarih2) < 0)
select c).Skip(PageIndex).Take(PageSize).OrderByDescending(k => k.IHALE_GIRIS_TARIHI);
return sorgu.ToList<TBLIHALE>();
}
}
if (SehirAdi.Trim() != "" && SehirAdi == "Tümü")//Şehir Adi Tümü Şeçildiginde.
{
using (kamuihaleDataContext db = new kamuihaleDataContext())
{
var sorgu = (from c in db.TBLIHALEs
where (c.IHALE_SEHIR == SehirAdi) || (c.IHALE_ADI.StartsWith(Kelime)) || (c.KATEGORI_ID == KategoriAdi) || (DateTime.Compare(Convert.ToDateTime(c.IHALE_GIRIS_TARIHI), tarih1) >= 0) && (DateTime.Compare(Convert.ToDateTime(c.IHALE_GIRIS_TARIHI), tarih2) < 0)
select c).Skip(PageIndex).Take(PageSize).OrderByDescending(k => k.IHALE_GIRIS_TARIHI);
return sorgu.ToList<TBLIHALE>();
}
}
if (SehirAdi == "Tümü" && KategoriAdi.ToString() == "Tümü")//Şehir Tümü Seçili - Kategori Listesi Tümü Seçili-Anahtar Kelime
{
using (kamuihaleDataContext db = new kamuihaleDataContext())
{
var sorgu = (from c in db.TBLIHALEs
where (DateTime.Compare(Convert.ToDateTime(c.IHALE_GIRIS_TARIHI), tarih1) >= 0) && (DateTime.Compare(Convert.ToDateTime(c.IHALE_GIRIS_TARIHI), tarih2) < 0)
select c).Skip(PageIndex).Take(PageSize).OrderByDescending(k => k.IHALE_GIRIS_TARIHI);
return sorgu.ToList<TBLIHALE>();
}
}
if (tarih1 == null && tarih2 == null)//Tarih ler seçili Olmadıgında.
{
using (kamuihaleDataContext db = new kamuihaleDataContext())
{
var sorgu = (from c in db.TBLIHALEs
where (c.IHALE_SEHIR == SehirAdi) || (c.KATEGORI_ID == KategoriAdi) || (c.IHALE_ADI.StartsWith(Kelime))
select c).Skip(PageIndex).Take(PageSize).OrderByDescending(k => k.IHALE_GIRIS_TARIHI);
return sorgu.ToList<TBLIHALE>();
}
}
if (tarih1 == null && tarih2 != null)//Tarih1 Boş,Tarih2 girildiginde.
{
using (kamuihaleDataContext db = new kamuihaleDataContext())
{
var sorgu = (from c in db.TBLIHALEs
where (c.IHALE_SEHIR == SehirAdi) || (c.KATEGORI_ID == KategoriAdi) || (DateTime.Compare(Convert.ToDateTime(c.IHALE_GIRIS_TARIHI), tarih1) >= 0) && (DateTime.Compare(Convert.ToDateTime(c.IHALE_GIRIS_TARIHI), tarih2) < 0)
select c).Skip(PageIndex).Take(PageSize).OrderByDescending(k => k.IHALE_GIRIS_TARIHI);
return sorgu.ToList<TBLIHALE>();
}
}
if ((SehirAdi == null) && (KategoriAdi == null )&& (tarih1 == null )&& (tarih2 == null) && (Kelime == null))//Hepsi Boş Girildiginde.
{
using (kamuihaleDataContext db = new kamuihaleDataContext())
{
var sorgu = (from c in db.TBLIHALEs
select c).Skip(PageIndex).Take(PageSize).OrderByDescending(p => p.IHALE_GIRIS_TARIHI);
return sorgu.ToList<TBLIHALE>();
}
}
return filtre_return;
}
örnek olarak:
http://picasaweb.google.com.tr/lh/photo/_g16xam1L3gG2Qr-QkwG_w?authkey=Gv1sRgCNyhxKfvl5vqfg&feat=directlink