public function writereviewAction()
 {
     $request = $this->getRequest();
     $productId = $request->getParam('productId');
     $rating = $request->getParam('starRating');
     $productReview = $request->getParam('productReview');
     if ($productId == '' || $productReview == '') {
         $this->messenger->addMessage('Oops, there is an error with this request');
         echo 'badd stuff1';
         $this->_redirect($_SERVER['HTTP_REFERER']);
     } else {
         $product = new DatabaseObject_OrderProfile($this->db);
         if ($product->load($productId)) {
             if ($product->buyer_UserID == $this->signedInUserSessionInfoHolder->generalInfo->userID && $product->product_order_status == 'order completed' && $product->product_returned == 0 && $product->seller_review_written != 1) {
                 $product_user = new DatabaseObject_User($this->db);
                 $product_user->load($product->product_UserId);
                 $review = new DatabaseObject_UserReview($this->db);
                 $review->rating = $rating;
                 $review->description = $productReview;
                 $review->order_profile_id = $productId;
                 $review->order_unique_id = $product->order_unique_id;
                 $review->order_product_name = $product->product_name;
                 $review->User_id = $product->product_UserId;
                 $product_user->review_count = $product_user->review_count + 1;
                 $product_user->review_total_score = $product_user->review_total_score + $rating;
                 $product_user->review_average_score = $product_user->review_total_score / ($product_user->review_count + 1);
                 $product_user->save();
                 $review->save();
                 $product->seller_review_written = 1;
                 $product->save();
                 echo 'here';
                 //add reward points.
                 DatabaseObject_Helper_UserManager::addRewardPointToUser($this->db, $this->signedInUserSessionInfoHolder->generalInfo->referee_id, '8', 'review written for product: ' . $product->product_name . 'from order: ' . $product->order_unique_id, $_SERVER['REMOTE_ADDR'], $this->signedInUserSessionInfoHolder->generalInfo->username, $this->signedInUserSessionInfoHolder->generalInfo->userID, $this->signedInUserSessionInfoHolder->generalInfo->referee_id);
                 echo 'here2';
                 //$this->messenger->addMessage('thank you for your review. you have been rewarded the the appropriate reward points: '.$review->rating);
                 $this->_redirect($_SERVER['HTTP_REFERER']);
             } else {
                 $this->messenger->addMessage('We are sorry, but you are not able to write a review for this product order');
                 echo 'sorry, bad stuff';
                 $this->_redirect($_SERVER['HTTP_REFERER']);
             }
         }
     }
 }