async Task SubmitReview() { if (string.IsNullOrWhiteSpace(FullName) || string.IsNullOrWhiteSpace(Email) || string.IsNullOrWhiteSpace(Location) || string.IsNullOrWhiteSpace(Description)) { return; } ProductReviewViewModel newReview = new ProductReviewViewModel() { ProductID = Product.ID, FullName = this.FullName, Email = this.Email, Location = this.Location, Description = this.Description, Rating = getRating() }; setRatingStars(newReview); FullName = ""; Email = ""; Location = ""; Description = ""; await productService.CreateProductReview(newReview); ProductReviews.Insert(ProductReviews.Count, newReview); }
public string UpdateReview(ProductReviewViewModel reviewObj) { if (ModelState.IsValid) { OperationsStatusViewModel OperationsStatusViewModelObj = null; try { reviewObj.commonObj = new LogDetailsViewModel(); reviewObj.commonObj.UpdatedBy = _commonBusiness.GetUA().UserName; reviewObj.commonObj.UpdatedDate = _commonBusiness.GetCurrentDateTime(); OperationsStatusViewModelObj = Mapper.Map <OperationsStatus, OperationsStatusViewModel>(_reviewBusiness.UpdateReview(Mapper.Map <ProductReviewViewModel, ProductReview>(reviewObj))); } catch (Exception ex) { return(JsonConvert.SerializeObject(new { Result = "ERROR", Message = ex.Message })); } if (OperationsStatusViewModelObj.StatusCode == 1) { return(JsonConvert.SerializeObject(new { Result = "OK", Record = OperationsStatusViewModelObj })); } else { return(JsonConvert.SerializeObject(new { Result = "Error", Record = OperationsStatusViewModelObj })); } } return(JsonConvert.SerializeObject(new { Result = "ERROR", Message = "Please Check the values" })); }
public HttpResponseMessage PostProductReview(int productID, string reviewText) { if (ModelState.IsValid) { try { ProductReviewViewModel productReviewVM = new ProductReviewViewModel(); productReviewVM.ProductID = productID; productReviewVM.ReviewText = reviewText; productReviewVM.ReviewedDate = DateTime.Now; productReviewVM.CustomerName = User.Identity.Name; productReviewService.CreateReview(productReviewVM); return(Request.CreateResponse(HttpStatusCode.Created, true)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex)); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
public IActionResult ProductPage(int?id) { var prUNList = new List <ProductUNViewModel>(); var productReviews = new List <ProductReview>(); var userNames = new List <string>(); var prRev = new ProductReviewViewModel(); prRev.Product = db.Products.Find(id); productReviews = db.ProductReviews.Where(pr => pr.ProductId == (int)id).ToList(); foreach (var product in productReviews) { var prUN = new ProductUNViewModel(); string userName = db.Users.Find(product.UserId).UserName; prUN.UserName = userName; prUN.ProductReview = product; prUNList.Add(prUN); } prRev.ProductReviews = prUNList; return(View(prRev)); }
//end --------------------------------------- //this will return the detail page //start ------------------------------ public ActionResult DetailPage(int Id) { ProductReviewViewModel pvm = new ProductReviewViewModel(); ProductTB tb = new ProductTB(); List <ReviewTB> rtb = new List <ReviewTB>(); List <ReviewViewModel> rv = new List <ReviewViewModel>(); if (Id != 0) { tb = _db.ProductTBs.Where(p => p.ProductId == Id).FirstOrDefault(); rtb = _db.ReviewTBs.Where(p => p.ProductId == Id).ToList(); } else { tb = _db.ProductTBs.Where(p => p.ProductId == 4).FirstOrDefault(); rtb = _db.ReviewTBs.Where(p => p.ProductId == 4).ToList(); } pvm.ProductId = tb.ProductId; pvm.ProductName = tb.ProductName; pvm.ProductDetail = tb.ProductDetail; pvm.ProductImageUrl = tb.ProductImageUrl; pvm.Price = tb.Price; foreach (var item in rtb) { rv.Add(new ReviewViewModel() { ReviewId = item.ReviewId, StarNumber = item.NumberOfStar, Message = item.Comment, UserName = item.UserTB.UserName, UserId = item.UserId, Date = item.Date }); } pvm.RVM = rv; return(View(pvm)); }
public ActionResult Index(ProductReviewViewModel formReview) { var product = SiteContext.Current.CatalogContext.CurrentProduct; var category = SiteContext.Current.CatalogContext.CurrentCategory; var request = System.Web.HttpContext.Current.Request; var basket = SiteContext.Current.OrderContext.GetBasket(); if (request.Form.AllKeys.All(x => x != "review-product")) { return(RedirectToAction("Index")); } var name = formReview.Name; var email = formReview.Email; var rating = Convert.ToInt32(formReview.Rating) * 20; var reviewHeadline = formReview.Title; var reviewText = formReview.Comments; if (basket.PurchaseOrder.Customer == null) { basket.PurchaseOrder.Customer = new Customer() { FirstName = name, LastName = String.Empty, EmailAddress = email }; } else { basket.PurchaseOrder.Customer.FirstName = name; if (basket.PurchaseOrder.Customer.LastName == null) { basket.PurchaseOrder.Customer.LastName = String.Empty; } basket.PurchaseOrder.Customer.EmailAddress = email; } basket.PurchaseOrder.Customer.Save(); var review = new ProductReview() { ProductCatalogGroup = SiteContext.Current.CatalogContext.CurrentCatalogGroup, ProductReviewStatus = ProductReviewStatus.SingleOrDefault(s => s.Name == "New"), CreatedOn = DateTime.Now, CreatedBy = "System", Product = product, Customer = basket.PurchaseOrder.Customer, Rating = rating, ReviewHeadline = reviewHeadline, ReviewText = reviewText, Ip = request.UserHostName }; product.AddProductReview(review); PipelineFactory.Create <ProductReview>("ProductReview").Execute(review); return(Redirect(CatalogLibrary.GetNiceUrlForProduct(product, category))); }
public ActionResult GetReviewOptions() { ProductReviewViewModel productReviewDTO = new ProductReviewViewModel(); return(Ok(new { sortOptions = productReviewDTO.GetSortOptions(), reviewsPerPage = productReviewDTO.GetReviewsPerPage() })); }
public PartialViewResult ReloadReviews(int productId) { #region ReviewsOfProduct var product = _context.Products.SingleOrDefault(p => p.Id == productId); var listOfReviews = _context.Reviews.Where(r => r.productId == productId).ToList(); decimal calculateTotalRate = 0; foreach (var review in listOfReviews) { calculateTotalRate += review.Ratio; } product.TotalPercentageRate = calculateTotalRate; _context.SaveChanges(); var catId = product.ProductCategoryId; var catInDb = _context.ProductCategories.SingleOrDefault(x => x.Id == catId); var catName = catInDb.Category; var latestProductsInDb = _context.Products.Where(x => x.ProductCategoryId == catId).Take(4).ToList(); List <Review> positiveReviews = new List <Review>(); List <Review> negativeReviews = new List <Review>(); foreach (var review in listOfReviews) { if (review.Rate >= 0) { positiveReviews.Add(review); } else { negativeReviews.Add(review); } } var viewModel = new ProductReviewViewModel() { ProductName = product.Name, ProductType = product.Type, ProductFeatures = product.Features, ProdcutPrice = product.Price, ProductId = product.Id, ProductReviewsPositiveList = positiveReviews, ProductReviewsNegativeList = negativeReviews, ProductReviewsList = listOfReviews, Ratio = product.TotalPercentageRate, Image = product.ProductImageUrl, CategoryName = catName, LatestProductsList = latestProductsInDb }; #endregion return(PartialView("_Reviews", viewModel)); }
public string GetReview(string ID) { try { OperationsStatusViewModel operationsStatus = new OperationsStatusViewModel(); ProductReviewViewModel review = Mapper.Map <ProductReview, ProductReviewViewModel>(_reviewBusiness.GetReview(Int32.Parse(ID))); return(JsonConvert.SerializeObject(new { Result = "OK", Records = review })); } catch (Exception ex) { return(JsonConvert.SerializeObject(new { Result = "ERROR", Message = ex.Message })); } }
// ..................................................................................Get Reviews..................................................................... public async Task <IEnumerable <ProductReviewViewModel> > GetReviews(string productId, string sortBy, int page) { ProductReviewViewModel productReviewDTO = new ProductReviewViewModel(sortBy); return(await context.ProductReviews .AsNoTracking() .OrderBy(productReviewDTO) .ThenByDescending(x => x.Date) .Where(x => x.Product.UrlId == productId && !x.Deleted) .Select <ProductReview, ProductReviewViewModel>() .Skip((page - 1) * productReviewDTO.GetReviewsPerPage()) .Take(productReviewDTO.GetReviewsPerPage()) .ToListAsync()); }
/// <summary> /// This method is used to create review. /// </summary> /// <param name="productReviewVM"></param> /// <returns></returns> public int CreateReview(ProductReviewViewModel productReviewVM) { productReview = new ProductReview { ProductID = productReviewVM.ProductID, CustomerName = productReviewVM.CustomerName, ReviewText = productReviewVM.ReviewText, ReviewedDate = productReviewVM.ReviewedDate }; unitOfWork.ProductReviewRepository.Insert(productReview); unitOfWork.Save(); return(productReview.ProductReviewID); }
public IActionResult Detail(int id) { var pdetail = product.GetById(id); var pReview = review.GetByProduct(pdetail); ProductReviewViewModel model = new ProductReviewViewModel(pdetail, pReview); //var listingResult = pdetail.Select(result => new ProductDetailViewModel { ProductId = result.Id, Name = result.Name, Category = result.Category, Description = result.Description, Price = result.Price, Reviews = result.Reviews }); // var model = new ProductReviewViewModel() // { // productDetails = listingResult // }; return(View(model)); }
public async Task CreateProductReview(ProductReviewViewModel obj) { await _localDbConnection.CreateTableAsync <ProductReviewModel>(); ProductReviewModel productReviewModel = new ProductReviewModel() { ProductID = obj.ProductID, FullName = obj.FullName, Email = obj.Email, Location = obj.Location, Description = obj.Description, Rating = obj.Rating }; await _localDbConnection.InsertAsync(productReviewModel); }
private void setRatingStars(ProductReviewViewModel review) { if (review.Rating >= 1) { review.IsRatingOne = true; } else { return; } if (review.Rating >= 2) { review.IsRatingTwo = true; } else { return; } if (review.Rating >= 3) { review.IsRatingThree = true; } else { return; } if (review.Rating >= 4) { review.IsRatingFour = true; } else { return; } if (review.Rating >= 5) { review.IsRatingFive = true; } else { return; } }
private IList <ProductReviewViewModel> MapReviews(Product product) { var reviews = new List <ProductReviewViewModel>(); foreach (var review in product.ProductReviews) { ProductReviewViewModel reviewModel = new ProductReviewViewModel(); reviewModel.Name = review.Customer.FirstName + " " + review.Customer.LastName; reviewModel.Email = review.Customer.EmailAddress; reviewModel.Title = review.ReviewHeadline; reviewModel.CreatedOn = review.CreatedOn; reviewModel.Comments = review.ReviewText; reviewModel.Rating = review.Rating; reviews.Add(reviewModel); } return(reviews); }
private IList <ProductReviewViewModel> MapReviews(Product product) { var reviews = new List <ProductReviewViewModel>(); foreach (var review in product.ProductReviews.Where(r => r.ProductReviewStatus.ProductReviewStatusId == (int)ProductReviewStatusCode.Approved)) { var reviewModel = new ProductReviewViewModel { Name = review.Customer.FirstName + " " + review.Customer.LastName, Email = review.Customer.EmailAddress, Title = review.ReviewHeadline, CreatedOn = review.CreatedOn, Comments = review.ReviewText, Rating = review.Rating }; reviews.Add(reviewModel); } return(reviews); }
private void CopyReviews(ProductReviewsViewModel model, List <ProductReview> reviews) { model.Reviews.Clear(); foreach (var productReview in reviews) { var viewModel = new ProductReviewViewModel(productReview); CustomerAccount customerAccount = null; if (productReview.UserID != "0") { customerAccount = HccApp.MembershipServices.Customers.Find(productReview.UserID); } viewModel.UserID = productReview.UserID; if (customerAccount == null) { viewModel.UserName = string.Empty; viewModel.City = string.Empty; viewModel.State = string.Empty; } else { viewModel.UserName = string.Format("{0}{1}", customerAccount.FirstName, string.IsNullOrEmpty(customerAccount.LastName) ? string.Empty : customerAccount.LastName.Substring(0, 1)); viewModel.City = customerAccount.ShippingAddress == null || string.IsNullOrEmpty(customerAccount.ShippingAddress.City) ? string.Empty : customerAccount.ShippingAddress.City; viewModel.State = customerAccount.ShippingAddress == null || string.IsNullOrEmpty(customerAccount.ShippingAddress.RegionDisplayName) ? string.Empty : customerAccount.ShippingAddress.RegionDisplayName; } model.Reviews.Add(viewModel); } }
// GET: Review/ReviewsOfProduct/2004 public ActionResult ReviewsOfProduct(int id) { try { #region ReviewsOfProduct var product = _context.Products.SingleOrDefault(p => p.Id == id); var blockedReviewOwners = _context.Users.Where(u => u.LockoutEnabled == false).ToList(); var listOfReviews = _context.Reviews.Where(r => r.productId == id).ToList(); List <Review> listOfReviewsWithoutBlockedUsers = new List <Review>(); foreach (var review in listOfReviews) { if (blockedReviewOwners.Exists(x => x.UserName == review.ReviewOwner) == false) { listOfReviewsWithoutBlockedUsers.Add(review); } } //foreach(var r in listOfReviewsWithoutBlockedUsers) //{ // _context.Reviews.Remove(r); //} //_context.SaveChanges(); decimal calculateTotalRate = 0; foreach (var review in listOfReviewsWithoutBlockedUsers) { calculateTotalRate += review.Ratio; } product.TotalPercentageRate = calculateTotalRate; _context.SaveChanges(); var catId = product.ProductCategoryId; var catInDb = _context.ProductCategories.SingleOrDefault(x => x.Id == catId); var catName = catInDb.Category; var latestProductsInDb = _context.Products.Where(x => x.ProductCategoryId == catId).Take(4).ToList(); List <Review> positiveReviews = new List <Review>(); List <Review> negativeReviews = new List <Review>(); foreach (var review in listOfReviewsWithoutBlockedUsers) { if (review.Rate >= 0) { positiveReviews.Add(review); } else { negativeReviews.Add(review); } } var viewModel = new ProductReviewViewModel() { ProductName = product.Name, ProductType = product.Type, ProductFeatures = product.Features, ProdcutPrice = product.Price, ProductId = product.Id, ProductReviewsPositiveList = positiveReviews, ProductReviewsNegativeList = negativeReviews, ProductReviewsList = listOfReviewsWithoutBlockedUsers, TotalPercentageRate = calculateTotalRate, Image = product.ProductImageUrl, CategoryName = catName, LatestProductsList = latestProductsInDb }; #endregion return(View(viewModel)); } catch { return(View()); } }
public AddProductReviewCommand(ProductReviewViewModel productViewModel) { ProductReviewViewModel = productViewModel; }
public RemoveProductReviewCommand(ProductReviewViewModel productViewModel) { ProductReviewViewModel = productViewModel; }
public UpdateProductReviewCommand(ProductReviewViewModel productViewModel) { ProductReviewViewModel = productViewModel; }