コード例 #1
0
        public ActionResult Filter()
        {
            var allCategories    = categoryService.GetAllCategories();
            var allSubcategories = subcategoryService.GetAllSubcategories();
            FilterRecipesViewModel filterRecipesModel = new FilterRecipesViewModel();

            foreach (var c in allCategories)
            {
                filterRecipesModel.Categories.Add(new CategoryViewModel
                {
                    IsSelected = false,
                    CategoryID = c.CategoryID,
                    Name       = c.Name
                });
            }

            foreach (var c in allSubcategories)
            {
                filterRecipesModel.Subcategories.Add(new SubcategoryViewModel
                {
                    IsSelected    = false,
                    SubcategoryID = c.SubcategoryID,
                    Name          = c.Name
                });
            }
            return(View(filterRecipesModel));
        }
コード例 #2
0
        public ActionResult Filter(FilterRecipesViewModel filterModel)
        {
            List <int> idSCategories         = new List <int>();
            List <int> idSSubcategories      = new List <int>();
            List <int> listOfRecipeIDSCat    = new List <int>(); // lista retetelor care sunt in cat selectate
            List <int> listOfRecipeIDSSubcat = new List <int>(); // lista retetelor care sunt in subcat selectate
            List <int> listIDs             = new List <int>();
            List <int> filteredWithoutName = new List <int>();


            foreach (var i in filterModel.Categories)
            {
                if (i.IsSelected == true)
                {
                    idSCategories.Add(i.CategoryID);
                }
            }

            foreach (var i in filterModel.Subcategories)
            {
                if (i.IsSelected == true)
                {
                    idSSubcategories.Add(i.SubcategoryID);
                }
            }
            if (idSCategories.Count() > 0)
            {
                listOfRecipeIDSCat = recipeService.GetAllRecipeIDSThatAreInCategories(idSCategories);
            }
            if (idSSubcategories.Count() > 0)
            {
                listOfRecipeIDSSubcat = recipeService.GetAllRecipeIDSThatAreInSubcategories(idSSubcategories);
            }



            if (listOfRecipeIDSCat.Count() > 0 && listOfRecipeIDSSubcat.Count() > 0)
            {
                filteredWithoutName.AddRange(listOfRecipeIDSCat.Intersect(listOfRecipeIDSSubcat).ToList());
            }
            else if (listOfRecipeIDSCat.Count() > 0 && idSSubcategories.Count() == 0)
            {
                filteredWithoutName.AddRange(listOfRecipeIDSCat);
            }
            else if (listOfRecipeIDSSubcat.Count() > 0 && idSCategories.Count() == 0)
            {
                filteredWithoutName.AddRange(listOfRecipeIDSSubcat);
            }



            if (filterModel.Name != null && filterModel.Name != "")
            {
                listIDs         = recipeService.GetRecipesIDSThatHaveStringInName(filterModel.Name, filteredWithoutName);
                TempData["ids"] = listIDs;
            }
            else
            {
                TempData["ids"] = filteredWithoutName;
            }

            if (filterModel.Name != "" && filteredWithoutName.Count == 0)
            {
                return(RedirectToAction("Index", "Recipe"));
            }
            else
            {
                return(RedirectToAction("FilterResults", "Recipe"));
            }
        }