public async Task <IActionResult> PickIngredients() { PickIngredientsViewModel pickIngredientsViewModel = new PickIngredientsViewModel(); var selectedIngredientsSession = HttpContext.Session.GetString("SelectedIngredients"); pickIngredientsViewModel.Ingredients = await _context.Ingredients .OrderBy(i => i.IngredientNameId) .ToListAsync(); if (!string.IsNullOrEmpty(selectedIngredientsSession)) { pickIngredientsViewModel.SelectedIngredients = JsonConvert.DeserializeObject <List <Ingredient> >(selectedIngredientsSession); } return(View(pickIngredientsViewModel)); }
public async Task <IActionResult> PickIngredients_Post() { PickIngredientsViewModel pickIngredientsViewModel = new PickIngredientsViewModel(); pickIngredientsViewModel.SelectedIngredients = new List <Ingredient>(); pickIngredientsViewModel.Ingredients = await _context.Ingredients .OrderBy(i => i.IngredientNameId) .ToListAsync(); bool isIngredientInARecipe = false; bool isIngredientAlreadySelected = false; if (await TryUpdateModelAsync <PickIngredientsViewModel>(pickIngredientsViewModel)) { if (pickIngredientsViewModel.SelectedIngredient is null || pickIngredientsViewModel.SelectedIngredient.Trim() == "") { ModelState.AddModelError("SelectedIngredient", "SELECT AN INGREDIENT"); HttpContext.Session.Remove("SelectedIngredients"); return(View(pickIngredientsViewModel)); } else { isIngredientInARecipe = IsIngredientInARecipe(pickIngredientsViewModel); isIngredientAlreadySelected = IsIngredientAlreadySelected(pickIngredientsViewModel); if (isIngredientInARecipe && !isIngredientAlreadySelected) { AddSelectedIngredientToSession(pickIngredientsViewModel.SelectedIngredient, pickIngredientsViewModel.SelectedIngredients); } else { return(View(pickIngredientsViewModel)); } } }