Exemplo n.º 1
0
        public async Task <IActionResult> Edit(int id, IngredientViewModel editIngredientViewModel)
        {
            if (id != editIngredientViewModel.Ingredient.IngredientId)
            {
                return(RedirectToAction("Error", "Home"));
            }
            Ingredient checkIngredientName = await _context.Ingredients.SingleOrDefaultAsync(x => x.Name == editIngredientViewModel.Ingredient.Name && x.IngredientId == editIngredientViewModel.Ingredient.IngredientId);

            var result = new FluentValidation.Results.ValidationResult();//Bypass the name validator and didn't know how to do it any other way

            if (checkIngredientName != null)
            {
                var validator = new EditIngredientValidator();
                result = validator.Validate(editIngredientViewModel.Ingredient);
            }
            else
            {
                var validator = new IngredientValidator(_context.Ingredients);
                result = validator.Validate(editIngredientViewModel.Ingredient);
            }
            if (result.IsValid)
            {
                Ingredient ingredient = await _context.Ingredients.SingleOrDefaultAsync(x => x.IngredientId == id);

                if (ingredient != null)
                {
                    ingredient.Name               = editIngredientViewModel.Ingredient.Name;
                    ingredient.EnergyKcal         = editIngredientViewModel.Ingredient.EnergyKcal;
                    ingredient.EnergyKj           = editIngredientViewModel.Ingredient.EnergyKj;
                    ingredient.Water              = editIngredientViewModel.Ingredient.Water;
                    ingredient.EggWhite           = editIngredientViewModel.Ingredient.EggWhite;
                    ingredient.Carbohydrates      = editIngredientViewModel.Ingredient.Carbohydrates;
                    ingredient.Sugar              = editIngredientViewModel.Ingredient.Sugar;
                    ingredient.Fat                = editIngredientViewModel.Ingredient.Fat;
                    ingredient.SaturatedFat       = editIngredientViewModel.Ingredient.SaturatedFat;
                    ingredient.SingleSaturatedFat = editIngredientViewModel.Ingredient.SingleSaturatedFat;
                    ingredient.MultiSaturatedFat  = editIngredientViewModel.Ingredient.MultiSaturatedFat;
                    ingredient.Cholesterol        = editIngredientViewModel.Ingredient.Cholesterol;
                    ingredient.Fiber              = editIngredientViewModel.Ingredient.Fiber;
                    _context.Update(ingredient);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Could not edit the ingredient. Try again later.");
                }
            }
            else
            {
                foreach (var item in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, item.ErrorMessage);
                }
            }
            return(View(editIngredientViewModel));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Create(IngredientViewModel createIngredientViewModel)
        {
            var validator = new IngredientValidator(_context.Ingredients);
            var result    = validator.Validate(createIngredientViewModel.Ingredient);

            if (result.IsValid)
            {
                _context.Add(createIngredientViewModel.Ingredient);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                foreach (var item in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, item.ErrorMessage);
                }
            }
            return(View(createIngredientViewModel));
        }