public void Send(string message, Guid roomId)
{
//if no valid connectionrecord don't let the message go through
var crc = new ConnectionRecordController();
var cr = crc.GetConnectionRecordByConnectionId(Context.ConnectionId);
//if the user (connectionrecord) isn't in a room don't let message go through
var rc = new RoomController();
if (cr != null && rc.UserInRoom(roomId, cr))
{
// parse message before use
if (Clients.Caller.username != null && Clients.Caller.username.Trim() != "phantom")
{
var parsedMessage = ParseMessage(message, roomId);
if (parsedMessage != string.Empty)
{
int moduleId;
int authorUserId;
//int.TryParse(Clients.Caller.moduleid, out moduleId);
moduleId = Convert.ToInt32(Clients.Caller.moduleid);
authorUserId = Convert.ToInt32(Clients.Caller.userid);
var m = new Message
{
ConnectionId = Context.ConnectionId,
MessageDate = DateTime.UtcNow,
MessageText = parsedMessage,
AuthorName = Clients.Caller.username,
AuthorUserId = authorUserId,
ModuleId = moduleId,
RoomId = roomId
};
new MessageController().CreateMessage(m);
Clients.Group(roomId.ToString()).newMessage(m);
}
}
else
{
// if there is no username for the user don't let them post
var m = new Message
{
ConnectionId = Context.ConnectionId,
MessageDate = DateTime.UtcNow,
MessageText = Localization.GetString("FailedUnknown.Text", "~/desktopmodules/DnnChat/app_localresources/" + Localization.LocalSharedResourceFile),
AuthorName = Localization.GetString("SystemName.Text", "~/desktopmodules/DnnChat/app_localresources/" + Localization.LocalSharedResourceFile),
AuthorUserId = -1,
RoomId = DefaultRoomId
};
Clients.Caller.newMessage(m);
}
}
else
{
// if there is no username for the user don't let them post
var m = new Message
{
ConnectionId = Context.ConnectionId,
MessageDate = DateTime.UtcNow,
MessageText = Localization.GetString("FailedUnknown.Text", "~/desktopmodules/DnnChat/app_localresources/" + Localization.LocalSharedResourceFile),
AuthorName = Localization.GetString("SystemName.Text", "~/desktopmodules/DnnChat/app_localresources/" + Localization.LocalSharedResourceFile),
AuthorUserId = -1,
RoomId = DefaultRoomId
};
Clients.Caller.newMessage(m);
}
}