Пример #1
0
 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);
 }
Пример #2
0
        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));
        }