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)); }
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")); } }