public IActionResult AddToMeal(int currentPage, int mealId, int id) { var meal = mealRepository.Find(mealId); FoodItem foodItem = foodItemRepository.Find(id).GetAwaiter().GetResult(); if (meal.ContainsFoodItem(foodItem.FoodItemID)) { ModelState.AddModelError(string.Empty, "This Food Item has already been added to this meal"); } else { meal.AddFoodItemToMeal(foodItem.FoodItemID); mealRepository.SaveChanges(); ViewBag.Message = $"{foodItem.FoodItemName} Added to Meal."; } var PageSize = 10; var viewModel = new MealBuilderSelectFoodItemsViewModel() { FoodItems = foodItemRepository.GetFoodItemsForUser(CurrentUser.User).OrderBy(x => x.FoodItemName).Skip((currentPage - 1) * PageSize).Take(PageSize), PagingInfo = new PagingInfo { CurrentPage = currentPage, ItemsPerPage = PageSize, TotalItems = foodItemRepository.GetFoodItems().Count() }, TheMeal = meal }; return(View("SelectFoodItemsForMeal", viewModel)); }
public IActionResult SelectFoodItemsForMeal(int mealId, int currentPage = 1) { //possible to prevent user from passing their own arguments. var PageSize = 10; var foodItems = foodItemRepository.GetFoodItemsForUser(this.CurrentUser.User); var meal = mealRepository.Find(mealId); var viewModel = new MealBuilderSelectFoodItemsViewModel() { FoodItems = foodItems.OrderBy(x => x.FoodItemName).Skip((currentPage - 1) * PageSize).Take(PageSize), PagingInfo = new PagingInfo { CurrentPage = currentPage, ItemsPerPage = PageSize, TotalItems = foodItemRepository.GetFoodItemsForUser(CurrentUser.User).Count() }, TheMeal = meal }; return(View(viewModel)); }