コード例 #1
0
        public ActionResult Index(string Name, List <string> Styles, List <string> Brands)
        {
            var filter = new ShoesFilter();

            if (Name != null)
            {
                filter.Name = Name;
            }
            if (Styles != null)
            {
                filter.Style_Ids = Styles.Select(x => Guid.Parse(x)).ToList();
            }
            if (Brands != null)
            {
                filter.Brand_Ids = Brands.Select(x => Guid.Parse(x)).ToList();
            }

            var result = this._shoesRepository.Get(filter);

            ViewBag.SelectedName   = Name;
            ViewBag.SelectedStyles = Styles != null ? Styles : new List <string>();
            ViewBag.SelectedBrands = Brands != null ? Brands : new List <string>();

            ViewBag.Styles = this._shoesStyleRepository.Get();
            ViewBag.Brand  = this._brandRepository.Get();

            return(View(result));
        }
コード例 #2
0
        public List <Shoes> Get(ShoesFilter filter)
        {
            try
            {
                using (CodeFirstContext context = new CodeFirstContext())
                {
                    var result = context.Shoes.Include(s => s.Styles).Include(s => s.Brand).Where(x => !x.isDeleted);

                    if (filter != null)
                    {
                        if (filter.Id != Guid.Empty)
                        {
                            result = result.Where(x => x.Id == filter.Id);
                        }

                        if (filter.Name != string.Empty)
                        {
                            result = result.Where(x => x.Name.Contains(filter.Name));
                        }

                        if (filter.Brand_Ids != null)
                        {
                            result = result.Where(x => filter.Brand_Ids.Contains(x.Brand.Id));
                        }

                        if (filter.Style_Ids != null)
                        {
                            result = result.Where(x => x.Styles.Any(style => filter.Style_Ids.Contains(style.Id)));
                        }
                    }

                    return(result.ToList());
                }
            }
            catch (Exception ex)
            {
                return(null);
            }
        }