مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

morteza1207

عضویت از 1394/04/10

فیلتربندی

  • یکشنبه 7 شهریور 1395
  • 23:35
تشکر میکنم

سلام

ممنون میشم سوالمو جواب بدین!!!

این فیلتر بندی که در عکس هست اولا آیا داینامیک هست؟ یعنی آدمین میتونه اضاف یا کم کنه؟

بعد اینکه آیا همه ی این فیلتر ها در یک جدول هستند؟ مثلا جدول tbl_filter ؟ 

 

 

من یه جدول در نظر گرفتم ولی یه مشکلی که دارم اینکه مثلا وقتی کاربر سامسونگ رو انتخاب میکنه محصولات اونو میاره ولی ولی وقتی رنگ مشکی رو انتخاب میکنه دیگه نمیره اون کالاهای مشکی مربوط به سامسونگ رو بیاره هم کالاهای سامسونگ میاره هم همه ی ائنایی که رنگ مشکی اند!!! کدم رو هم میزارم

  public IList<Product> GetProductByFilter(IEnumerable<SubCategory> CatId,int Max, int Min, List<int> CategoryId, List<int> ValueId)
        {


            List<Product> Products = new List<Product>();
            List<Product> FinalProducts = new List<Product>();

            if (CategoryId != null&&CategoryId.Count >0)
            {

                foreach (var item in CategoryId)
                {

                    var Result = db.Products.Where(c => c.SubCategoryId == item);

                    Products.AddRange(Result); // کالاهای مربوط به گروهها مثلا موبایل ، لپ تاپ ، یا زیر گروه اونها 

                }

               
            }
            else
            {
                Products = GetAllProductAttr(CatId).ToList();
            }





            if (Max>0 && Min > 0)
            {
                var Result = Products.Where(c => c.Price >= Min && c.Price <= Max).ToList();
                Products.AddRange(Result);

            }

            if (ValueId !=null && ValueId.Count > 0)
            {
                foreach (var item in ValueId)
                {

                    var Result = from a in Products
                                 join b in db.ProductProperties
                                 on a.ProductId equals b.ProductId
                               
                                 where b.PropertyId == item
                                 select a;



                    FinalProducts.AddRange(Result.ToList()); // اینجا هم همون فیلترها مثل شرکت سازنده ، رنگ و فیلترهای دیگه 

                }

                Products = FinalProducts;
            }



            return Products.ToList();


        }

 

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 8 شهریور 1395
  • 11:48

برای سوال اول

بله معمولا داینامیک ساخته مشه

سوال دوم

خیر معمولا بر اساس ویژگی ها محصول و دسته بندی فیلتر ها تعیین میشه

 

کاربر سایت

morteza1207

عضویت از 1394/04/10

  • دوشنبه 8 شهریور 1395
  • 19:50

ببخشید میشه یکم بیشتر توضیح بدین درباره ی جواب دومتون؟ یعنی من برای ساختن یه همچین فیلتربندی به چه جداولی نیاز دارم؟ خواهشا جواب بدین که خیلی مهمه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 9 شهریور 1395
  • 16:16

جدولی که در اون بتونید فیلتر ها رو نگهداری کنید و بتونید بگید روی کدام از ویژگی های محصول فیلتر اعمال شود

اگر هیچ ایده ای ندارید نمونه های سورس باز را ببینید

کاربر سایت

morteza1207

عضویت از 1394/04/10

  • چهارشنبه 10 شهریور 1395
  • 12:37

ببخشید میشه یه چندتا از این سورس بازهارو معرفی کنید؟نمیدونم باید چی بنویسم تو نت که بیاره؟ ممنون میشم معرفی کنید

مرسی

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 10 شهریور 1395
  • 13:13

میتونید NopCommers رو ببینید

کلمه open source eshop را سرچ کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)