コード例 #1
0
    protected void Listele()
    {
        using (BaglantiCumlesi SME = new BaglantiCumlesi())
        {
            #region SQL String
            string marka = Class.Fonksiyonlar.Firma.Marka().ToLower();
            var    SQL   = (from p in SME.tbl_urunler
                            where p.dil_id == DilID && p.onay == true
                            let LKod = SME.tbl_kodlar.Where(k => k.id == p.kod_id).Select(x => x.kod).FirstOrDefault()
                                       select new
            {
                ad = p.ad,
                p.aciklama,
                p.id,
                p.on_aciklama,
                p.resim_id,
                kod = (LKod != null ? LKod : null),
                marka = (LKod != null ? LKod : marka)
            });
            #endregion

            #region Kategori Olayı
            if (KategoriID != 0)
            {
                #region Gelen Kategori "Tüm Kategoriler" değilse
                if (KategoriID != -1)
                {
                    List <int> E;

                    var SQL2 = (from p in SME.tbl_urunler_kategoriler
                                where p.kategori_id == KategoriID
                                select
                                new
                    {
                        p.urun_id
                    });

                    E = new List <int>(SQL2.ToList().ConvertAll(d => d.urun_id).ToList());

                    SQL = SQL.Where(s => E.Contains(s.id));

                    #region Ziyaret Ekle
                    Class.Fonksiyonlar.Uygulama.ZiyaretEkle((int)Class.Sabitler.Ziyaret.KATEGORI, KategoriID);
                    #endregion
                }
                #endregion
            }
            #endregion

            #region Etiket Olayı
            if (Etiket != null)
            {
                List <int?> E = new List <int?>();

                var SQL2 = (from p in SME.tbl_etiketler
                            where p.ad.StartsWith(Etiket.Substring(0, 1)) && p.ad.Contains(Etiket.Substring(Etiket.Length - 1, 1)) && p.dil_id == DilID && p.onay == true
                            select
                            new
                {
                    p.id
                });

                foreach (var i in SQL2)
                {
                    E.Add(i.id);
                }

                List <int> U;

                var SQL3 = (from p in SME.tbl_urunler_etiketler
                            where E.Contains(p.etiket_id)
                            select
                            new
                {
                    uid = p.urun_id
                });

                U = new List <int>(SQL3.ToList().ConvertAll(d => d.uid).ToList());

                SQL = SQL.Where(s => U.Contains(s.id));

                #region Ziyaret Ekle
                Class.Fonksiyonlar.Uygulama.ZiyaretEkle((int)Class.Sabitler.Ziyaret.ETIKET, SQL2.Select(x => x.id).FirstOrDefault());
                #endregion
            }
            #endregion

            #region Marka Olayı
            if (Marka != null)
            {
                #region Gelen Marka "TÜM MARKALAR" değilse
                if (Marka != Class.Fonksiyonlar.Genel.KarakterTemizle(Class.Fonksiyonlar.Uygulama.SabitlerText(Class.Fonksiyonlar.Dil.ID(), 40), false))
                {
                    List <int?> M = new List <int?>();

                    var SQL4 = (from p in SME.tbl_markalar
                                where p.ad.StartsWith(Marka.Substring(0, 1)) && p.ad.Contains(Marka.Substring(Marka.Length - 1, 1)) && p.onay == true
                                select
                                new
                    {
                        p.id
                    });

                    foreach (var i in SQL4)
                    {
                        M.Add(i.id);
                    }

                    List <int> U2;

                    var SQL5 = (from p in SME.tbl_urunler_markalar
                                where M.Contains(p.marka_id)
                                select
                                new
                    {
                        uid = p.urun_id
                    });

                    U2 = new List <int>(SQL5.ToList().ConvertAll(d => d.uid).ToList());

                    SQL = SQL.Where(s => U2.Contains(s.id));

                    #region Ziyaret Ekle
                    Class.Fonksiyonlar.Uygulama.ZiyaretEkle((int)Class.Sabitler.Ziyaret.MARKA, SQL4.Select(x => x.id).FirstOrDefault());
                    #endregion
                }
                #endregion
            }
            #endregion

            #region Ürün Sayfa Sayısından Küçükse
            if (SQL.AsEnumerable().Count() < sayfalamasp.PageSize)
            {
                sayfalama.Visible = false;
            }
            #endregion

            #region Siralama İşlemleri
            if (SiralamaIsleri.Direktif != null)
            {
                if (SiralamaIsleri.Direktif == "D")
                {
                    if (SiralamaIsleri.Kolon != null)
                    {
                        if (SiralamaIsleri.Kolon == "a")
                        {
                            SQL = SQL.OrderBy(n => n.ad).OrderByDescending(n => n.ad);
                        }
                        else if (SiralamaIsleri.Kolon == "k")
                        {
                            SQL = SQL.OrderBy(n => n.kod).OrderByDescending(n => n.kod);
                        }
                    }
                }
                else if (SiralamaIsleri.Direktif == "A")
                {
                    if (SiralamaIsleri.Kolon != null)
                    {
                        if (SiralamaIsleri.Kolon == "a")
                        {
                            SQL = SQL.OrderBy(n => n.ad);
                        }
                        else if (SiralamaIsleri.Kolon == "k")
                        {
                            SQL = SQL.OrderBy(n => n.kod);
                        }
                    }
                }
            }
            #endregion

            #region Ürün Kodlarını Listeye At
            UrunKodlari = SQL.Where(x => x.kod != null).Select(x => x.kod).ToList();
            #endregion

            #region Ürün Adlarını Listeye At
            UrunAdlari = SQL.AsEnumerable().Select(x => x.ad).ToList();
            #endregion

            #region DataBind
            listeleme.DataSource = SQL;
            listeleme.DataBind();
            #endregion
        }
    }