예제 #1
0
        public IActionResult AddReview(string id)
        {
            var model = new ReviewForRecipeViewModel
            {
                RecipeId = id,
            };

            return(this.View(model));
        }
예제 #2
0
        public async Task <IActionResult> AddReview(ReviewForRecipeViewModel model)
        {
            model.UserId = this.userManager.GetUserId(this.User);
            if (!this.ModelState.IsValid)
            {
                return(this.View(model.RecipeId));
            }

            await this.recipesService.AddReview(model);

            return(this.RedirectToAction(nameof(this.ById), new { id = model.RecipeId }));
        }
예제 #3
0
        public async Task <string> AddReview(ReviewForRecipeViewModel model)
        {
            this.recipeRepository.All().FirstOrDefault(x => x.Id == model.RecipeId).Reviews.Add(new Review
            {
                Comment  = model.SanitizedReview,
                Score    = model.Score,
                RecipeId = model.RecipeId,
                UserId   = model.UserId,
            });
            await this.recipeRepository.SaveChangesAsync();

            return(model.RecipeId);
        }
예제 #4
0
        public async Task AddReviewShouldCreateANewReviewToRecipe()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;

            AutoMapperConfig.RegisterMappings(Assembly.Load("CookingBook.Web.ViewModels"));
            var dbContext = new ApplicationDbContext(options);

            var recipeRepo            = new EfDeletableEntityRepository <Recipe>(dbContext);
            var nutritionRepo         = new EfDeletableEntityRepository <NutritionValue>(dbContext);
            var productRepo           = new EfDeletableEntityRepository <Product>(dbContext);
            var userRepo              = new EfDeletableEntityRepository <ApplicationUser>(dbContext);
            var service               = new RecipesService(recipeRepo, nutritionRepo, productRepo, userRepo);
            var category              = new Category();
            var nutrValue             = new NutritionValue();
            var user                  = new ApplicationUser();
            var prod                  = new Collection <RecipeByIdProductsViewModel>();
            var recipeCreateViewModel = new RecipeCreateViewModel
            {
                CategoryId     = 1,
                CookProcedure  = "cookProc",
                Photo          = "photo",
                Serving        = 1,
                Title          = "addNew",
                CookTime       = 2,
                NutritionValue = new RecipeCreateNutritionValuesViewModel
                {
                    Calories = 1, Carbohydrates = 1, Fats = 1, Fiber = 1, Protein = 1, Salt = 1, Sugar = 1,
                },
                Products = new List <RecipeCreateProductsViewModel>(),
            };
            string       userId       = "trayan";
            StringValues sv           = new StringValues("one");
            StringValues sk           = new StringValues("1");
            var          recipeResult = await service.CreateAsync(recipeCreateViewModel, userId, sv, sk);

            var model = new ReviewForRecipeViewModel
            {
                Comment   = "commentOne",
                RecipeId  = recipeResult,
                Score     = 5,
                UserId    = "trayan",
                CreatedOn = DateTime.Now,
            };
            var reviewResult = await service.AddReview(model);

            Assert.IsType <string>(reviewResult);
            Assert.NotEmpty(reviewResult);
            Assert.NotNull(reviewResult);
            Assert.True(dbContext.Reviews.Any());
        }