public function counts($Column, $From = false, $To = false, $Max = false)
{
$Result = array('Complete' => true);
switch ($Column) {
case 'CountMessages':
$this->Database->query(DBAModel::getCountSQL('count', 'Conversation', 'ConversationMessage', $Column, 'MessageID'));
break;
case 'CountParticipants':
$this->SQL->update('Conversation c')->set('c.CountParticipants', '(select count(uc.ConversationID) from GDN_UserConversation uc where uc.ConversationID = c.ConversationID and uc.Deleted = 0)', false, false)->put();
break;
case 'FirstMessageID':
$this->Database->query(DBAModel::getCountSQL('min', 'Conversation', 'ConversationMessage', $Column, 'MessageID'));
break;
case 'LastMessageID':
$this->Database->query(DBAModel::getCountSQL('max', 'Conversation', 'ConversationMessage', $Column, 'MessageID'));
break;
case 'DateUpdated':
$this->Database->query(DBAModel::getCountSQL('max', 'Conversation', 'ConversationMessage', $Column, 'DateInserted'));
break;
case 'UpdateUserID':
$this->SQL->update('Conversation c')->join('ConversationMessage m', 'c.LastMessageID = m.MessageID')->set('c.UpdateUserID', 'm.InsertUserID', false, false)->put();
break;
default:
throw new Gdn_UserException("Unknown column {$Column}");
}
return $Result;
}