public ActionResult ProductEvaluation(ModelProductComments modelProductComments) { String UserName = Session["UserName"].ToString(); ProductComment myComment = new ProductComment(); int PID = modelProductComments.product.ProductID; int CID = db.Customer.Where(x => x.UserName == UserName).Select(x => x.CustomerID).FirstOrDefault(); Product myProduct = db.Product.Where(x => x.ProductID == PID).Select(x => x).FirstOrDefault(); //comment is already in the database, so update the database with new comment. if (db.ProductComment.Where(x => x.CustomerID == CID && x.ProductID == PID).Select(x => x.CustomerID).FirstOrDefault() == CID) { myComment = db.ProductComment.Where(x => x.CustomerID == CID && x.ProductID == PID).Select(x => x).FirstOrDefault(); myProduct.ProductStar = ((myProduct.ProductStar * myProduct.ProductNumberOfEvaluate - myComment.ProductStar) + modelProductComments.productComment.ProductStar) / (myProduct.ProductNumberOfEvaluate); myComment.Comment = modelProductComments.productComment.Comment; myComment.ProductStar = modelProductComments.productComment.ProductStar; db.SaveChanges(); } else { //add the new comment to the database. myComment.ProductStar = modelProductComments.productComment.ProductStar; myComment.ProductID = PID; myComment.CustomerID = CID; myComment.CustomerName = db.Customer.Where(x => x.CustomerID == CID).Select(x => x.UserName).FirstOrDefault(); myComment.Comment = modelProductComments.productComment.Comment; db.ProductComment.Add(myComment); myProduct.ProductStar = ((myProduct.ProductStar * myProduct.ProductNumberOfEvaluate) + modelProductComments.productComment.ProductStar) / (myProduct.ProductNumberOfEvaluate + 1); myProduct.ProductNumberOfEvaluate += 1; db.SaveChanges(); } db.SaveChanges(); return(RedirectToAction("Home", "My")); }
public ActionResult ProductEvaluation(int PID) { Product myProduct = db.Product.Where(x => x.ProductID == PID).Select(x => x).FirstOrDefault(); ProductComment myComment = new ProductComment(); ModelProductComments myModel = new ModelProductComments(); myModel.product = myProduct; myModel.productComment = myComment; return(View(myModel)); }