public XElement ConvertToXml(Message message)
        {
            Contract.Requires(message != null);
            Contract.Ensures(Contract.Result<XElement>() != null);

            return default(XElement);
        }
        private Message CreateMessage(Command command)
        {
            Contract.Requires(command != null);
            Contract.Ensures(Contract.Result<Message>() != null);

            var message = new Message(1, messageId, command);
            Interlocked.Increment(ref messageId);
            return message;
        }
        public XElement ConvertToXml(Message message)
        {
            XElement element = new XElement("message");

            // We should use AsDynamicWriter instead AsDynamic
            // because we're changing exiting element not reading one
            dynamic dynamicElement = element.AsDynamicWriter();
            dynamicElement.version = message.Version;
            dynamicElement.messageId = message.Id;

            dynamicElement.command["type"] = message.Command.CommandType.ToString();

            // Writing command to dynamicElement
            WriteCommand(dynamicElement, message.Command);

            return element;
        }
        public void ConvertAckCommandTest()
        {
            long version = 1;
            long messageId = 123123;
            long ackMessageId = 3242;

            AckCommand command = new AckCommand(ackMessageId);
            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);
            AckCommand command2 = (AckCommand) message2.Command;
            Assert.That(command2.MessageId, Is.EqualTo(command.MessageId));
        }
        public void ConvertLoginCommandTest()
        {
            long version = 1;
            long messageId = 12312;
            string userName = "******";
            LoginCommand command = new LoginCommand(new UserInfo(userName));
            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);

            // Check message equivalence
            Assert.That(message2.Version, Is.EqualTo(message.Version));
            Assert.That(message2.Id, Is.EqualTo(message.Id));
            LoginCommand command2 = (LoginCommand) message2.Command;
            Assert.That(command2.UserInfo.Name, Is.EqualTo(userName));
        }
        private void SendMessage(Message message)
        {
            Contract.Requires(message != null);

            string xml = messageConverter.ConvertToXml(message).ToString();
            connection.SendString(xml);
        }
Example #7
0
        private void SendUpdatedUserState(FullUserInfo userInfo)
        {
            Contract.Requires(userInfo != null);
            // Creating message to send
            var userStateCommand = new UserStateCommand(userInfo.UserInfo, userInfo.UserState);
            var message = new Message(1, messageId, userStateCommand);
            string xml = messageConverter.ConvertToXml(message).ToString();

            // Finding all connected users (without this particular user)
            var collectionToSend = users.Where(ui => ui.EndPoint != null && ui != userInfo);

            // And sending user information to them
            foreach (var ui in collectionToSend)
            {
                tcpServer.SendString(ui.EndPoint, xml);
            }
        }
Example #8
0
 private void SendMessage(IPEndPoint endPoint, Message message)
 {
     string xml = messageConverter.ConvertToXml(message).ToString();
     tcpServer.SendString(endPoint, xml);
 }
 protected abstract void MessageReceived(Message 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));
        }
        public void ConvertUserInfoCommandTest()
        {
            long version = 1;
            long messageId = 123123;

            UserStateCommand command = new UserStateCommand(new UserInfo("userName"), "userState");
            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);
            UserStateCommand command2 = (UserStateCommand)message2.Command;
            Assert.That(command2.UserInfo.Name, Is.EqualTo(command.UserInfo.Name));
            Assert.That(command2.UserState, Is.EqualTo(command.UserState));
        }