Пример #1
0
        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));
        }
Пример #2
0
        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));
                    }
                }
            }