DiscussionModel::setUserScore PHP Method

setUserScore() public method

Sets the discussion score for specified user.
public setUserScore ( integer $DiscussionID, integer $UserID, integer $Score ) : integer
$DiscussionID integer Unique ID of discussion to update.
$UserID integer Unique ID of user setting score.
$Score integer New score for discussion.
return integer Total score.
    public function setUserScore($DiscussionID, $UserID, $Score)
    {
        // Insert or update the UserDiscussion row
        $this->SQL->replace('UserDiscussion', ['Score' => $Score], ['DiscussionID' => $DiscussionID, 'UserID' => $UserID]);
        // Get the total new score
        $TotalScore = $this->SQL->select('Score', 'sum', 'TotalScore')->from('UserDiscussion')->where('DiscussionID', $DiscussionID)->get()->firstRow()->TotalScore;
        // Update the Discussion's cached version
        $this->SQL->update('Discussion')->set('Score', $TotalScore)->where('DiscussionID', $DiscussionID)->put();
        return $TotalScore;
    }