public WaterCoolerViewItemProxy AddMessage(int?messageID, string message)
        {
            // DON'T user the view to save to the DB.  User the WaterCooler table.  The views are read only
            WaterCoolerItem wc = (new WaterCooler(TSAuthentication.GetLoginUser())).AddNewWaterCoolerItem();

            wc.GroupFor       = null;
            wc.Message        = message;
            wc.MessageType    = messageID == null ? "Comment" : "Reply";
            wc.OrganizationID = TSAuthentication.OrganizationID;
            wc.ReplyTo        = messageID;
            wc.TimeStamp      = DateTime.UtcNow;
            wc.UserID         = TSAuthentication.UserID;
            wc.Collection.Save();

            return(WaterCoolerView.GetWaterCoolerViewItem(wc.Collection.LoginUser, wc.MessageID).GetProxy());
        }
        override protected void GetNextRecord()
        {
            WaterCoolerViewItem waterCooler = WaterCoolerView.GetWaterCoolerViewItem(_loginUser, _itemIDList[_rowIndex]);

            _lastItemID = waterCooler.MessageID;
            UpdatedItems.Add((int)_lastItemID);

            DocText = HtmlToText.ConvertHtml(waterCooler.Message);

            _docFields.Clear();
            foreach (DataColumn column in waterCooler.Collection.Table.Columns)
            {
                object value = waterCooler.Row[column];
                string s     = value == null || value == DBNull.Value ? "" : value.ToString();
                AddDocField(column.ColumnName, s);
            }

            DocFields       = _docFields.ToString();
            DocIsFile       = false;
            DocName         = waterCooler.MessageID.ToString();
            DocCreatedDate  = waterCooler.TimeStampUtc;
            DocModifiedDate = DateTime.UtcNow;
        }