Example #1
0
        public async Task GetEditModelAsync_WithReviewId_ShouldReturnValidViewModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IReviewService reviewService = new ReviewService(database);

            // Act
            ReviewBasicServiceModel result = await reviewService.GetEditModelAsync(reviewId);

            // Assert
            result.Id.Should().Be(reviewId);
            result.Content.Should().Be(content);
            result.Rating.Should().Be(rating);
        }
Example #2
0
        public async Task <IActionResult> Edit(int id)
        {
            bool isReviewExistingById = await this.reviewService.IsReviewExistingById(id, false);

            if (!isReviewExistingById)
            {
                TempData.AddErrorMessage(string.Format(EntityNotFound, ReviewEntity));

                return(this.RedirectToHomeIndex());
            }

            string username = User.Identity.Name;

            bool isUserRestricted = await this.userService.IsUserRestricted(username);

            if (isUserRestricted)
            {
                TempData.AddErrorMessage(UserRestrictedErrorMessage);

                return(this.RedirectToHomeIndex());
            }

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

            bool isUserAuthor = await this.reviewService.IsUserAuthor(id, userId);

            bool isUserModerator = User.IsInRole(ModeratorRole);

            if (!isUserAuthor && !isUserModerator)
            {
                return(this.RedirectToHomeIndex());
            }

            ReviewBasicServiceModel review = await this.reviewService.GetEditModelAsync(id);

            ReviewFormViewModel model = new ReviewFormViewModel()
            {
                Content = review.Content,
                Rating  = review.Rating,
                Ratings = this.GetRatingsSelectListItems()
            };

            return(View(model));
        }