示例#1
0
        public async Task <IActionResult> Create(int id)
        {
            bool isSupplementExisting = await this.supplementService.IsSupplementExistingById(id, false);

            if (!isSupplementExisting)
            {
                TempData.AddErrorMessage(string.Format(EntityNotFound, SupplementEntity));

                return(this.RedirectToHomeIndex());
            }

            string username = User.Identity.Name;

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

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

                return(this.RedirectToHomeIndex());
            }

            ReviewFormViewModel model = new ReviewFormViewModel()
            {
                Ratings = this.GetRatingsSelectListItems()
            };

            ViewData["SupplementId"] = id;

            return(View(model));
        }
示例#2
0
 public IActionResult AddReview(ReviewFormViewModel vm)
 {
     return(vm.ReviewType switch
     {
         nameof(Song) => RedirectToAction("AddSongReview", vm),
         nameof(Album) => RedirectToAction("AddAlbumReview", vm),
         nameof(PodcastEpisode) => RedirectToAction("AddPodcastEpisodeReview", vm),
         _ => RedirectToAction("Index", "Music"),
     });
        public ActionResult New()
        {
            var viewModel = new ReviewFormViewModel()
            {
                Id = 0,
            };

            return(View("Form", viewModel));
        }
        public ReviewFormViewModel NewReview()
        {
            var employees = _context.Employees.ToList();
            var viewModel = new ReviewFormViewModel
            {
                Review    = new Review(),
                Employees = employees
            };

            return(viewModel);
        }
        public async Task <IActionResult> Edit(int id, ReviewFormViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            await this._reviews.EditAsync(id, model.Text, (int)(model.Stars * 2));

            return(Redirect("/Reviews/List/DateDescending"));
        }
        public ReviewFormViewModel EditReview(int id)
        {
            var employees = _context.Employees.ToList();
            var review    = _context.Reviews.SingleOrDefault(r => r.Id == id);

            var viewModel = new ReviewFormViewModel
            {
                Employees = employees,
                Review    = review
            };

            return(viewModel);
        }
        public ActionResult Save(ReviewFormViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = _reviewRepo.NewReview();

                return(View("ReviewForm", viewModel));
            }

            _reviewRepo.SaveReview(model);

            return(RedirectToAction("Index", "Review"));
        }
        public ReviewFormViewModel SaveReview(ReviewFormViewModel model)
        {
            if (model.Review.Id == 0)
            {
                _context.Reviews.Add(model.Review);
            }
            else
            {
                _context.Entry(model.Review).State = EntityState.Modified;
            }

            _context.SaveChanges();
            return(model);
        }
        public async Task <IActionResult> Post(ReviewFormViewModel model)
        {
            if (model == null)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            await this._reviews.CreateAsync(model.Text, (int)Math.Round(model.Stars * 2), this._userManager.GetUserId(HttpContext.User));

            return(Redirect("List/DateDescending"));
        }
示例#10
0
        public async Task <IActionResult> Create(int id, ReviewFormViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.Ratings = this.GetRatingsSelectListItems();

                ViewData["SupplementId"] = id;

                return(View(model));
            }

            bool isSupplementExisting = await this.supplementService.IsSupplementExistingById(id, false);

            if (!isSupplementExisting)
            {
                TempData.AddErrorMessage(string.Format(EntityNotFound, SupplementEntity));

                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);

            await this.reviewService.CreateAsync(model.Content, model.Rating, userId, id);

            TempData.AddSuccessMessage(string.Format(EntityCreated, ReviewEntity));

            bool isUserModerator = User.IsInRole(ModeratorRole);

            if (isUserModerator)
            {
                return(RedirectToAction(nameof(ReviewsController.Index), Reviews, new { area = ModeratorArea }));
            }

            return(this.RedirectToAction(nameof(Index)));
        }
        public ActionResult Create(ReviewFormViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.Review.ItemId == null)
            {
                return(BadRequest());
            }

            if (model.Review.Page == null ||
                model.Review.Page < 1)
            {
                model.Review.Page = 1;
            }

            int authorId = User.Identity.GetUserId <int>();

            bool success = this.reviewService.Create(
                model.Review.Content,
                model.Mark,
                model.Review.ItemId.Value,
                authorId);

            if (!success)
            {
                return(BadRequest());
            }

            TempData.AddSuccessMessage(string.Format(
                                           WebConstants.SuccessfullEntityOperation,
                                           Review,
                                           WebConstants.Added));

            return(RedirectToAction(
                       nameof(ItemsController.Details),
                       Items,
                       new
            {
                id = model.Review.ItemId,
                page = model.Review.Page
            }));
        }
示例#12
0
        public async Task <IActionResult> Rate(ReviewFormViewModel model, string id)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var authorId = this.userManager.GetUserId(User);
            var userId   = model.SelectedPassenger == null ? id : model.SelectedPassenger;

            await this.reviews.CreateAsync(userId, model.SelectedRating, model.Comment, authorId);

            var user = await this.userManager.FindByIdAsync(userId);

            TempData["Success"] = $"{user.Name} was succcessfully rated.";

            return(RedirectToAction(nameof(Rate), new { id = model.TravelId }));
        }
示例#13
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));
        }
        public ActionResult Edit(int id)
        {
            var review = _context.Reviews.SingleOrDefault(c => c.Id == id);

            if (review == null || (review.UserId != User.Identity.GetUserId() && User.IsInRole(RoleName.User)))
            {
                return(HttpNotFound());
            }
            else
            {
                var viewModel = new ReviewFormViewModel
                {
                    Id      = review.Id,
                    Comment = review.Comment,
                    Rating  = review.Rating,
                };
                return(View("Form", viewModel));
            }
        }
        public ActionResult Save(ReviewFormViewModel vm)
        {
            ApplicationDbContext db = new ApplicationDbContext();

            if (!ModelState.IsValid)
            {
                //foreach (ModelState modelState in ViewData.ModelState.Values)
                //{
                //    foreach (ModelError error in modelState.Errors)
                //    {
                //        return Content(error.ErrorMessage);
                //    }
                //}
                return(View("Form", vm));
            }

            if (vm.Id == 0)
            {
                var currentUserId = User.Identity.GetUserId();
                var review        = new Review
                {
                    Id          = vm.Id,
                    Comment     = vm.Comment,
                    Rating      = vm.Rating,
                    UserId      = currentUserId,
                    DateWritten = DateTime.Now,
                };
                _context.Reviews.Add(review);
            }
            else
            {
                var reviewInDb = _context.Reviews.Single(c => c.Id == vm.Id);
                reviewInDb.Comment = vm.Comment;
                reviewInDb.Rating  = vm.Rating;
            }

            _context.SaveChanges();
            return(RedirectToAction("Index", "Review"));
        }
        public ActionResult Create(int?itemId, int?page)
        {
            if (itemId == null)
            {
                return(BadRequest());
            }

            if (page == null || page < 1)
            {
                page = 1;
            }

            ReviewFormViewModel model = new ReviewFormViewModel()
            {
                Review = new ReviewFormServiceModel
                {
                    ItemId = itemId,
                    Page   = page
                }
            };

            return(View(model));
        }
示例#17
0
        public void ReviewSaveShouldSaveReviewModel()
        {
            //Arrange
            var mock       = new Mock <IReviewRepository>();
            var controller = new ReviewController(mock.Object);

            var review = new Review
            {
                Id         = 2,
                EmployeeId = 5
            };
            var model = new ReviewFormViewModel
            {
                Review = review
            };

            //Act
            var result = controller.Save(model);


            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("Index", ((RedirectToRouteResult)result).RouteValues["action"]);
        }
示例#18
0
        public async Task <IActionResult> Edit(int id, ReviewFormViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.Ratings = this.GetRatingsSelectListItems();

                return(View(model));
            }

            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());
            }

            bool isReviewModified = await this.reviewService.IsReviewModified(id, model.Content, model.Rating);

            if (!isReviewModified)
            {
                model.Ratings = this.GetRatingsSelectListItems();

                TempData.AddWarningMessage(EntityNotModified);

                return(View(model));
            }

            await this.reviewService.EditAsync(id, model.Content, model.Rating);

            TempData.AddSuccessMessage(string.Format(EntityModified, ReviewEntity));

            if (isUserModerator)
            {
                return(RedirectToAction(nameof(ReviewsController.Index), Reviews, new { area = ModeratorArea }));
            }

            return(this.RedirectToAction(nameof(Index)));
        }