public async Task <IActionResult> Create(RecipeDetailsPageViewModel input)
        {
            if (!this.ModelState.IsValid)
            {
                var recipe = await this.recipesService
                             .GetViewModelByIdAsync <RecipeDetailsViewModel>(input.Recipe.Id);

                var model = new RecipeDetailsPageViewModel
                {
                    Recipe = recipe,
                    CreateReviewInputModel = input.CreateReviewInputModel,
                };

                return(this.View("/Views/Recipes/Details.cshtml", model));
            }

            var userId = this.userManager.GetUserId(this.User);

            input.CreateReviewInputModel.UserId = userId;

            try
            {
                await this.reviewsService.CreateAsync(input.CreateReviewInputModel);
            }
            catch (ArgumentException aex)
            {
                return(this.BadRequest(aex.Message));
            }

            return(this.RedirectToAction("Details", "Recipes", new { id = input.CreateReviewInputModel.RecipeId }));
        }
        public async Task <IActionResult> Details(int id)
        {
            var recipe = await this.recipesService.GetViewModelByIdAsync <RecipeDetailsViewModel>(id);

            var model = new RecipeDetailsPageViewModel
            {
                Recipe = recipe,
                CreateReviewInputModel = new CreateReviewInputModel(),
            };

            return(this.View(model));
        }