public ActionResult EditReview(ReviewVM model) { _tagsManager = TagsManagerFactory.Create(); _reviewManager = ReviewManagerFactory.Create(); _categoryManager = CategoryManagerFactory.Create(); if (ModelState.IsValid) { try { //set dates model.Review.DateCreated = DateTime.Now; //send review to manager _reviewManager.EditReview(model.Review); if (model.NewTags != null) { //create array of tags from tags input string[] tags = model.NewTags.Split(','); //send tags to tag manager TResponse <List <Tags> > tagList = _tagsManager.AddListOfTags(tags); //add tags to review _reviewManager.AddTagsToReview(model.Review.ReviewId, tagList.Payload); } return(RedirectToAction("Index")); } catch (Exception ex) { //catch an exception and add throw new ApplicationException("Something wrong happened while adding a review:", ex); } } else { //reset view var tagsResponse = _tagsManager.GetTagByReviewId(model.Review.ReviewId); model.TagList = tagsResponse.Payload; TResponse <List <Categories> > response = _categoryManager.GetCategoryList(); model.SetCategoryListItems(response.Payload); return(View(model)); } }
public ActionResult AddReview(Review review) { AccessToken accessToken = ((AccessToken)Session["AccessToken"]); Rental rental = rentalManager.GetRentalByCustomerID(accessToken.User.CustomerID, review.ISBN); review.RentalID = rental.RentalID; if (ModelState.IsValid) { if (reviewManager.CheckReview(accessToken.User.CustomerID, review.ISBN)) { reviewManager.EditReview(review); } else { reviewManager.AddReview(review); } return(RedirectToAction("Reviews", "Reviews", new { review.ISBN })); } return(View()); }
public ActionResult EditReview(ReviewVM model) { _tagsManager = TagsManagerFactory.Create(); _reviewManager = ReviewManagerFactory.Create(); _categoryManager = CategoryManagerFactory.Create(); if (ModelState.IsValid) { try { //set dates model.Review.DateCreated = DateTime.Now; //send review to manager _reviewManager.EditReview(model.Review); if (model.NewTags != null) { //create array of tags from tags input string[] tags = model.NewTags.Split(','); //send tags to tag manager var newlyAddedTagsResponse = _tagsManager.AddListOfTags(tags); //get current tags var currentTagsForReviewResponse = _tagsManager.GetTagsByReviewId(model.Review.ReviewId); //add tags to review _tagsManager.EditTagsForReview(model.Review.ReviewId, newlyAddedTagsResponse.Payload, currentTagsForReviewResponse.Payload); return(RedirectToAction("Reviews")); } else { var response = _tagsManager.DeleteAllTagsForReview(model.Review.ReviewId); if (!response.Success) { return(new HttpStatusCodeResult(500, $"Error in cloud. Message: {response.Message}")); } return(RedirectToAction("Reviews")); } } catch (Exception ex) { //catch an exception and add throw new ApplicationException("Something wrong happened while adding a review:", ex); } } else { //reset view var tagsResponse = _tagsManager.GetTagByReviewId(model.Review.ReviewId); model.TagList = tagsResponse.Payload; TResponse <List <Categories> > response = _categoryManager.GetCategoryList(); model.SetCategoryListItems(response.Payload); return(View(model)); } }