示例#1
0
        public async Task <IActionResult> New()
        {
            var recipeNewViewModel = new RecipeNewViewModel
            {
                RecipeNewModel = new RecipeNewModel()
            };

            return(View(recipeNewViewModel));
        }
示例#2
0
        public async Task <IActionResult> Save(RecipeNewViewModel recipeNewViewModel)
        {
            if (TimeSpan.TryParse(recipeNewViewModel.DurationText, out TimeSpan duration))
            {
                recipeNewViewModel.RecipeNewModel.Duration = duration;
            }
            await _recipeFacade.InsertAsync(recipeNewViewModel.RecipeNewModel);

            return(RedirectToAction(nameof(List)));
        }
示例#3
0
        public async Task <IActionResult> New(RecipeNewViewModel recipeNewViewModel)
        {
            recipeNewViewModel.IngredientsAll ??= await _ingredientFacade.GetAllAsync();

            recipeNewViewModel.RecipeModel ??= new RecipeDetailModel
            {
                Ingredients = new List <RecipeListIngredientModel>()
            };
            recipeNewViewModel.RecipeModel.Ingredients ??= new List <RecipeListIngredientModel>();

            return(View(recipeNewViewModel));
        }
示例#4
0
        public async Task <IActionResult> Insert(RecipeNewViewModel recipeNewViewModel)
        {
            var currentCulture = CultureInfo.CurrentCulture;

            if (TimeSpan.TryParse(recipeNewViewModel.DurationText, out TimeSpan duration))
            {
                recipeNewViewModel.RecipeModel.Duration = duration;
            }

            try
            {
                await _recipeFacade.InsertAsync(recipeNewViewModel.RecipeModel, culture : currentCulture.Name);
            }
            catch (ApiException e)
            {
                var validationErrorsModel = serializerService.Deserialize <ValidationErrorsModel <RecipeNewValidationErrorsModel> >(e.Response);

                foreach (var nameError in validationErrorsModel.Errors.Name)
                {
                    ModelState.AddModelError($"{nameof(recipeNewViewModel.RecipeModel)}.{nameof(recipeNewViewModel.RecipeModel.Name)}", nameError);
                }

                foreach (var descriptionError in validationErrorsModel.Errors.Description)
                {
                    ModelState.AddModelError($"{nameof(recipeNewViewModel.RecipeModel)}.{nameof(recipeNewViewModel.RecipeModel.Description)}", descriptionError);
                }

                foreach (var foodTypeError in validationErrorsModel.Errors.FoodType)
                {
                    ModelState.AddModelError($"{nameof(recipeNewViewModel.RecipeModel)}.{nameof(recipeNewViewModel.RecipeModel.FoodType)}", foodTypeError);
                }

                foreach (var durationError in validationErrorsModel.Errors.Duration)
                {
                    ModelState.AddModelError($"{nameof(recipeNewViewModel.RecipeModel)}.{nameof(recipeNewViewModel.RecipeModel.Duration)}", durationError);
                }

                foreach (var ingredientsError in validationErrorsModel.Errors.Ingredients)
                {
                    ModelState.AddModelError($"{nameof(recipeNewViewModel.RecipeModel)}.{nameof(recipeNewViewModel.RecipeModel.Ingredients)}", ingredientsError);
                }
            }

            if (!ModelState.IsValid)
            {
                return(View(nameof(New), recipeNewViewModel));
            }

            return(RedirectToAction(nameof(List)));
        }
示例#5
0
 public async Task <IActionResult> AddIngredient(RecipeNewViewModel recipeNewViewModel)
 {
     recipeNewViewModel.RecipeModel.Ingredients ??= new List <RecipeListIngredientModel>();
     recipeNewViewModel.RecipeModel.Ingredients.Add(new RecipeListIngredientModel());
     return(View(nameof(New), recipeNewViewModel));
 }