public JsonResult LoadMoreReviews(int productNumber, int supplierNumber, int size) { using (FreeMarketEntities db = new FreeMarketEntities()) { ProductReviewsCollection model = new ProductReviewsCollection(); model.ProductNumber = productNumber; model.SupplierNumber = supplierNumber; List <ProductReview> collection = db.ProductReviews .Where(c => c.ProductNumber == productNumber && c.SupplierNumber == supplierNumber && c.Approved == true) .OrderByDescending(p => p.ReviewId) .Skip(size) .Take(size) .ToList(); model.Reviews = collection; int modelCount = db.ProductReviews .Where(c => c.ProductNumber == productNumber && c.SupplierNumber == supplierNumber && c.Approved == true) .Count(); if (model.Reviews.Any()) { string modelString = RenderRazorViewToString("_RatingPartialLoadMore", model); return(Json(new { ModelString = modelString, ModelCount = modelCount })); } return(Json(model)); } }
public ActionResult GetAverageRating(int productNumber, int supplierNumber) { string toReturn = ""; double?averageRating = ProductReviewsCollection.CalculateAverageRatingOnly(productNumber, supplierNumber); if (averageRating == null || averageRating == 0) { toReturn = "No reviews written yet."; } else { toReturn = averageRating.ToString() + " / 3"; } return(Content(toReturn)); }
public ActionResult ViewProduct(int id, int supplierNumber, int quantity) { string userId = User.Identity.GetUserId(); ShoppingCart cart = GetCartFromSession(userId); ViewProductViewModel model = new ViewProductViewModel(id, supplierNumber, quantity, cart.Order.OrderNumber); if (model == null) { return(RedirectToAction("Departments", "Product")); } model.Reviews = ProductReviewsCollection.GetReviewsOnly(id, supplierNumber, 0); return(View("ViewProduct", model)); }
public ActionResult GetReviews(int productNumber, int supplierNumber, int size = 4) { ProductReviewsCollection reviews = ProductReviewsCollection.GetReviewsOnly(productNumber, supplierNumber, size); return(PartialView("_RatingPartial", reviews)); }
public ActionResult AddToCart(ViewProductViewModel viewModel) { // Validate if (viewModel.ProductNumber == 0 || viewModel.SupplierNumber == 0) { TempData["errorMessage"] = "Error: We could not add the item to the cart."; return(JavaScript("window.location = window.location.href;")); } if (ModelState.IsValid) { string userId = User.Identity.GetUserId(); bool anonymousUser = (userId == null); ShoppingCart cart = GetCartFromSession(userId); if (cart.Order.OrderStatus == "Locked") { TempData["errorMessage"] = "Your cart is locked because you are in the process of checking out. Open your cart to complete or cancel the checkout process."; if (Request.IsAjaxRequest()) { return(JavaScript("window.location = window.location.href;")); } else { return(RedirectToAction("Cart", "ShoppingCart")); } } // CheckQuantity if (viewModel.CustodianQuantityOnHand < viewModel.Quantity) { viewModel.SetInstances(viewModel.ProductNumber, viewModel.SupplierNumber); if (Request.IsAjaxRequest()) { return(PartialView("_ViewProductModal", viewModel)); } else { viewModel.Reviews = ProductReviewsCollection.GetReviewsOnly(viewModel.ProductNumber, viewModel.SupplierNumber, 0); return(View("ViewProduct", viewModel)); } } FreeMarketObject result; result = cart.AddItemFromProduct(viewModel.ProductNumber, viewModel.SupplierNumber, viewModel.Quantity, viewModel.CustodianNumber, viewModel.SelectedPackageType); if (result.Result == FreeMarketResult.Success) { // New item added if (!string.IsNullOrEmpty(result.Message)) { TempData["message"] = result.Message; } else if (!string.IsNullOrEmpty(result.Message)) { TempData["errorMessage"] = result.Message; } } if (Request.IsAjaxRequest()) { return(JavaScript("window.location = window.location.href;")); } else { viewModel.Reviews = ProductReviewsCollection.GetReviewsOnly(viewModel.ProductNumber, viewModel.SupplierNumber, 0); return(RedirectToAction("Cart", "ShoppingCart")); } } // Validation Error else { // Prepare viewModel.SetInstances(viewModel.ProductNumber, viewModel.SupplierNumber); if (Request.IsAjaxRequest()) { return(PartialView("_ViewProductModal", viewModel)); } else { viewModel.Reviews = ProductReviewsCollection.GetReviewsOnly(viewModel.ProductNumber, viewModel.SupplierNumber, 0); return(View("ViewProduct", viewModel)); } } }