// GET: Review public ActionResult Index() { var model = new ReviewListVM(); model.ReviewVMList = new List <ReviewVM>(); var mgr = ReviewManagerFactory.Create(); var response = mgr.GetAllReviews(); if (response.Success == true) { foreach (var review in response.Payload) { ReviewVM reviewVM = new ReviewVM(); reviewVM.Review = review; // Get category of review by review Id var _categoryManager = CategoryManagerFactory.Create(); var categoryResponse = _categoryManager.GetCategoryByReviewId(reviewVM.Review.ReviewId); reviewVM.Category = categoryResponse.Payload; // Get tag list of review by review Id var _tagsManager = TagsManagerFactory.Create(); var tagResponse = _tagsManager.GetTagByReviewId(reviewVM.Review.ReviewId); reviewVM.TagList = tagResponse.Payload; model.ReviewVMList.Add(reviewVM); } return(View(model)); } return(RedirectToAction("Index", "Home")); }
public ActionResult Reviews() { var model = new ReviewListVM(); model.ReviewVMList = new List <ReviewVM>(); var mgr = ReviewManagerFactory.Create(); var response = mgr.GetAllReviews(); if (response.Success == true) { foreach (var review in response.Payload) { ReviewVM reviewVM = new ReviewVM(); reviewVM.Review = review; // Get category of review by review Id var _categoryManager = CategoryManagerFactory.Create(); var categoryResponse = _categoryManager.GetCategoryByReviewId(reviewVM.Review.ReviewId); reviewVM.Category = categoryResponse.Payload; // Get tag list of review by review Id var _tagsManager = TagsManagerFactory.Create(); var tagResponse = _tagsManager.GetTagByReviewId(reviewVM.Review.ReviewId); reviewVM.TagList = tagResponse.Payload; var user = UserManager.FindById(review.UserId); reviewVM.Username = user.UserName; model.ReviewVMList.Add(reviewVM); } } return(View(model)); }
public ActionResult DeleteReview(int id) { _reviewManager = ReviewManagerFactory.Create(); var response = _reviewManager.DeleteReview(id); //error out if success == false return(RedirectToAction("Reviews")); }
public void LaunchReview() { #if DEBUG // FakeReviewManager does not interact with the Play Store, so no UI is shown // and no review is performed. Useful for unit tests. var manager = new FakeReviewManager(MainActivity.Instance); #else var manager = ReviewManagerFactory.Create(MainActivity.Instance); #endif var request = manager.RequestReviewFlow(); request.AddOnCompleteListener(new OnCompleteListener(manager)); }
public ActionResult AddReview(ReviewVM newReview) { _tagsManager = TagsManagerFactory.Create(); _reviewManager = ReviewManagerFactory.Create(); _categoryManager = CategoryManagerFactory.Create(); if (ModelState.IsValid) { try { if (User.IsInRole("Admin")) { newReview.Review.IsApproved = true; newReview.Review.UserId = User.Identity.GetUserId(); } //set dates newReview.Review.DateCreated = DateTime.Now; //send review to manager _reviewManager.AddReview(newReview.Review); if (newReview.NewTags != null) { //create array of tags from tags input string[] tags = newReview.NewTags.Split(','); //send tags to tag manager TResponse <List <Tags> > tagList = _tagsManager.AddListOfTags(tags); //add tags to review _reviewManager.AddTagsToReview(newReview.Review.ReviewId, tagList.Payload); } return(RedirectToAction("Reviews")); } catch (Exception ex) { throw new ApplicationException("Something wrong happened while adding a review:", ex); } } else { //reset view TResponse <List <Categories> > response = _categoryManager.GetCategoryList(); newReview.SetCategoryListItems(response.Payload); return(View(newReview)); } }
public void LaunchReview() { try { var manager = ReviewManagerFactory.Create(MainActivity); var request = manager.RequestReviewFlow(); request.AddOnCompleteListener(new OnCompleteListener(MainActivity, manager)); request.AddOnFailureListener(new AppReviewOnFailureListener()); } catch (Exception e) { Methods.DisplayReportResultTrack(e); } }
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 EditReview(int id) { var model = new ReviewVM(); //Get review by Id then pass the dude into a VM _reviewManager = ReviewManagerFactory.Create(); _categoryManager = CategoryManagerFactory.Create(); _tagsManager = TagsManagerFactory.Create(); var reviewResponse = _reviewManager.GetReviewById(id); var tagResponse = _tagsManager.GetTagByReviewId(id); var categoryListResponse = _categoryManager.GetCategoryList(); var categoryForReview = _categoryManager.GetCategoryByReviewId(id); if (reviewResponse.Success == true && tagResponse.Success == true && categoryListResponse.Success == true && categoryForReview.Success == true) { model.Review = reviewResponse.Payload; model.TagList = tagResponse.Payload; model.SetCategoryListItems(categoryListResponse.Payload); model.Category = categoryForReview.Payload; return(View(model)); //TResponse<List<Categories>> categoryListResponse = _categoryManager.GetCategoryList(); //TResponse<Categories> categoryResponse = _categoryManager.GetCategoryByReviewId(id); } else { return(new HttpStatusCodeResult(500, $"Error in cloud. Message:" + $"{reviewResponse.Message}" + $"{tagResponse.Message}" + $"{categoryListResponse.Message}" + $"{categoryForReview.Message}")); } }
public ActionResult Category(int id) { var model = new ReviewListVM(); var categoryManager = CategoryManagerFactory.Create(); var categoryResponse = categoryManager.GetCategoryById(id); if (categoryResponse.Success == true) { model.Category = categoryResponse.Payload; } //Get all Reviews that match the category var reviewManager = ReviewManagerFactory.Create(); var reviewResponse = reviewManager.GetReviewByCategory(model.Category.CategoryName); if (reviewResponse.Success == true) { //Add those reviews to the ReviewListVM foreach (var review in reviewResponse.Payload) { ReviewVM reviewVM = new ReviewVM(); reviewVM.Review = review; // Get category of review by review Id reviewVM.Category = categoryResponse.Payload; // Get tag list of review by review Id var tagsManager = TagsManagerFactory.Create(); var tagResponse = tagsManager.GetTagByReviewId(reviewVM.Review.ReviewId); reviewVM.TagList = tagResponse.Payload; if (review.IsApproved) { model.ReviewVMList.Add(reviewVM); } } if (model.ReviewVMList.Any()) { return(View(model)); } return(RedirectToAction("Categories", "Home")); } else { return(RedirectToAction("Categories", "Home")); } }
/// <summary> /// Open Android in-app review popup of your current application. /// </summary> public async Task PerformInAppRateAsync() { inAppRateTCS?.TrySetCanceled(); inAppRateTCS = new TaskCompletionSource <bool>(); reviewManager = ReviewManagerFactory.Create(Application.Context); var request = reviewManager.RequestReviewFlow(); request.AddOnCompleteListener(this); await inAppRateTCS.Task; reviewManager.Dispose(); request.Dispose(); }
public ActionResult Review(int id) { var model = new ReviewVM(); var mgr = ReviewManagerFactory.Create(); var response = mgr.GetReviewById(id); if (response.Success == true) { model.Review = response.Payload; // Get category of review by review Id var categoryMgr = CategoryManagerFactory.Create(); var categoryResponse = categoryMgr.GetCategoryByReviewId(model.Review.CategoryId); model.Category = categoryResponse.Payload; // Get tag list of review by review Id var tagManager = TagsManagerFactory.Create(); var tagResponse = tagManager.GetTagByReviewId(model.Review.ReviewId); model.TagList = tagResponse.Payload; } return(View(model)); }
/// <summary> /// Requests an app review. /// </summary> public async Task RequestReview(bool testMode) { tcs?.TrySetCanceled(); tcs = new TaskCompletionSource <bool>(); if (testMode) { manager = new FakeReviewManager(Application.Context); } else { manager = ReviewManagerFactory.Create(Application.Context); } forceReturn = false; var request = manager.RequestReviewFlow(); request.AddOnCompleteListener(this); await tcs.Task; manager.Dispose(); request.Dispose(); }
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)); } }
public ActionResult Tag(int id) { var model = new ReviewListVM() { ReviewVMList = new List <ReviewVM>() }; var tagsManager = TagsManagerFactory.Create(); var reviewManager = ReviewManagerFactory.Create(); try { var tagResponse = tagsManager.GetTagById(id); if (tagResponse.Success) { if (tagResponse.Payload.TagName != null) { model.Tag = tagResponse.Payload; } } //Get all Reviews that match the Tag Id var reviewResponse = reviewManager.GetReviewByTagId(model.Tag.TagId); if (reviewResponse.Success == true) { if (reviewResponse.Payload.Any()) { model.ReviewVMList = new List <ReviewVM>(); //Add those reviews to the ReviewListVM foreach (var review in reviewResponse.Payload) { ReviewVM reviewVM = new ReviewVM(); reviewVM.Review = review; // Get category of review by review Id var categoryManager = CategoryManagerFactory.Create(); var categoryResponse = categoryManager.GetCategoryByReviewId(reviewVM.Review.ReviewId); reviewVM.Category = categoryResponse.Payload; // Get tag list of review by review Id var taglistResponse = tagsManager.GetTagByReviewId(reviewVM.Review.ReviewId); reviewVM.TagList = taglistResponse.Payload; if (review.IsApproved) { model.ReviewVMList.Add(reviewVM); } } if (model.ReviewVMList.Any()) { return(View(model)); } } } return(RedirectToAction("Tags", "Home")); } catch (Exception ex) { throw ex; } }