public void SendTextMessage(string userName, string textMessage) { Contract.Requires(!string.IsNullOrEmpty(userName)); Contract.Requires(!string.IsNullOrEmpty(textMessage)); var textMessageCommand = new TextMessageCommand(new UserInfo(currentUserName), new UserInfo(userName), textMessage); var message = CreateMessage(textMessageCommand); SendMessage(message); }
private void HandleTextMessageCommand(long incomiMessageId, TextMessageCommand command) { using (usersSync.UseReadLock()) { var fromUserInfo = users.SingleOrDefault(ui => ui.UserInfo.Name == command.From.Name); var toUserInfo = users.SingleOrDefault(ui => ui.UserInfo.Name == command.To.Name); if (fromUserInfo == null || toUserInfo == null || toUserInfo.EndPoint == null) { // Can't forward message return; } var message = CreateMessage(command); SendMessage(toUserInfo.EndPoint, message); } }
public void ConvertTextMessageCommandTest() { long version = 1; long messageId = 123123; TextMessageCommand command = new TextMessageCommand( new UserInfo("from user"), new UserInfo("to user"), "text message"); Message message = new Message(version, messageId, command); //Converting to xml DynamicXmlMessageConverter converter = new DynamicXmlMessageConverter(); XElement xml = converter.ConvertToXml(message); // And back again Message message2 = converter.ConvertFromXml(xml); TextMessageCommand command2 = (TextMessageCommand)message2.Command; Assert.That(command2.From.Name, Is.EqualTo(command.From.Name)); Assert.That(command2.To.Name, Is.EqualTo(command.To.Name)); Assert.That(command2.Message, Is.EqualTo(command.Message)); }