public async Task <IActionResult> RecipesByFridge(int recipePage = 1) { try { User user = await _signInManager.UserManager.GetUserAsync(User); IEnumerable <Fridge> productsInFridge = await fridgeRepository.GetUserProducts(user); IEnumerable <Recipe> filteredRecipes = await recipeRepository.FindAllAsync(r => r.Ingredients.All(i => productsInFridge.Any(p => (p.Product.Id == i.Product.Id && (p.Quantity >= i.Quantity))))); return(PartialView("_RecipesListPartial", new RecipesListViewModel { Recipes = filteredRecipes .OrderBy(r => r.AverageRating) .Skip((recipePage - 1) * PageSize) .Take(PageSize), PagingInfo = new PagingInfo { CurrentPage = recipePage, ItemsPerPage = PageSize, TotalItems = filteredRecipes.Count() } })); } catch (Exception e) { throw e; } }
public async Task <IActionResult> Fridge() { var user = await _signInManager.UserManager.GetUserAsync(User); var products = await productRepository.Products(); products = products.OrderBy(p => p.Name); return(View(new FridgeViewModel { Products = products, Fridges = await fridgeRepository.GetUserProducts(user) })); }