예제 #1
0
        private void sendMessage()
        {
            //Check empty message
            if (TextToSend.Text == "")
            {
                return;
            }

            //Refresh textarea message
            string message = TextToSend.Text;

            TextToSend.Text = "";

            //Create message
            string      nickname  = controller.nickname;
            string      timestamp = Parser.TimestampNow().ToString();
            string      dest      = "";
            string      hash      = Parser.toHash("MESSAGE", nickname, message, timestamp, dest);
            string      rootedby  = controller.nickname;
            MessageMess msg       = new MessageMess(nickname, message, timestamp, dest, hash, rootedby);

            //Send message
            controller.sender.sendMessage(msg);

            //Add msg in messagelist
            string toDisplay = controller.nickname + " : " + message;

            MessagesList.Items.Add(toDisplay);
        }
예제 #2
0
        public void sendMessage(String message)
        {
            string nickname  = controller.nickname;
            string timestamp = Parser.TimestampNow().ToString();
            string rootedby  = controller.nickname;
            string hash      = Parser.toHash("MESSAGE", nickname, message, timestamp, Participant);

            MessageMess msg = new MessageMess(nickname, message, timestamp, "@" + Participant, hash, rootedby);

            controller.sender.sendMessage(msg);
        }
예제 #3
0
        private bool haveAlreadyMessage(MessageMess messToCheck)
        {
            string rootedBy = messToCheck.Rootedby;

            foreach (Message msg in HistoryReceiver)
            {
                MessageMess mess = (MessageMess)msg;
                if (mess.Hash == messToCheck.Hash)
                {
                    return(true);
                }
            }

            return(false);
        }
예제 #4
0
        public override void onReceiver(Message message)
        {
            MessageMess newMess = (MessageMess)message;

            updateParticipants(newMess.Rootedby);

            if (haveAlreadyMessage(newMess) || newMess.Nickname == controller.nickname)
            {
                Console.WriteLine(controller.nickname + " Already msg ", newMess.Rootedby);
                return;
            }
            else
            {
                Console.WriteLine(controller.nickname + " new msg ", newMess.Rootedby);
                base.onReceiver(message);
            }

            bool   isPrivateMess = isPrivateMessage(newMess.Destinataire);
            string nicknameDest  = getNickname(newMess.Destinataire);

            if (isPrivateMess && nicknameDest == controller.nickname)
            {
                //Message for me in private room
                Console.WriteLine("Private room " + newMess.Msg);
                controller.onReveivedMessage(newMess.Msg, newMess.Nickname, nicknameDest);
                return;
            }
            else if (nicknameDest.Length <= 0)
            {
                //Message for me in main room
                Console.WriteLine("Update main room " + newMess.Msg);
                controller.onReveivedMessage(newMess.Msg, newMess.Nickname, nicknameDest);
            }

            //Update RootedBy field
            if (newMess.Rootedby.Length <= 0)
            {
                newMess.Rootedby += controller.nickname;
            }
            else
            {
                newMess.Rootedby += "," + controller.nickname;
            }

            //Send message with new RootedBy field
            controller.sender.sendMessage(newMess);
        }