Exemple #1
0
        /// <summary>
        /// Allows occupants to request privileges to a room.
        /// </summary>
        public void RequestPrivilige(Jid room, Role role)
        {
            if (role == Role.None)
            {
                return;
            }

            XmlElement formTypeValue = Xml.Element("value")
                                       .Text(MucNs.NsRequest);

            XmlElement formType = Xml.Element("field")
                                  .Attr("var", "FORM_TYPE")
                                  .Child(formTypeValue);

            XmlElement requestedRoleValue = Xml.Element("value")
                                            .Text(role.ToString().ToLowerInvariant());

            XmlElement requestedRole = Xml.Element("field")
                                       .Attr("var", MucNs.Role)
                                       .Attr("type", "list-single")
                                       .Attr("label", "Requested Role")
                                       .Child(requestedRoleValue);

            DataField[] fields =
            {
                new DataField(formType),
                new DataField(requestedRole)
            };

            SubmitForm form    = new SubmitForm(fields);
            var        message = new Core.Message(room, im.Jid, form.ToXmlElement());

            SendMessage(message);
        }
Exemple #2
0
 /// <summary>
 /// Initializes a new instance of the Message class from the specified
 /// instance.
 /// </summary>
 /// <param name="message">An instance of the Core.Message class to
 /// initialize this instance with.</param>
 /// <exception cref="ArgumentNullException">The message parameter is null.</exception>
 /// <exception cref="ArgumentException">The 'type' attribute of
 /// the specified message stanza is invalid.</exception>
 internal Message(Core.Message message)
 {
     message.ThrowIfNull("message");
     type              = ParseType(message.Data.GetAttribute("type"));
     element           = message.Data;
     AlternateSubjects = new XmlDictionary(element, "subject", "xml:lang");
     AlternateBodies   = new XmlDictionary(element, "body", "xml:lang");
 }
 protected override void OnReceived(Core.Message message)
 {
     if (Control.InvokeRequired)
     {
         Control.BeginInvoke(_handler, message);
     }
     else
     {
         base.OnReceived(message);
     }
 }
Exemple #4
0
        public override void HandleMessage(Core.Message message)
        {
            string str = null;

            if (message.Is <string>(Messages.ToolSelected, ref str))
            {
                SelectedTool = (str == this.Name);
                message.Handle();
            }
            base.HandleMessage(message);
        }
        public async Task CreatedConversationMessage(string user, string conversationId, string message)
        {
            var messageDetails = new Core.Message()
            {
                Author    = await users.RetrieveById(user),
                CreatedAt = DateTime.Now,
                Text      = message,
                Channel   = conversationId
            };

            await Clients.Group(conversationId).SendAsync("newConversationMessage", messageDetails);

            var createdMessageId = await conversationMessages.Create(messageDetails);
        }
        public async Task CreatedMessage(string user, string channelId, string message)
        {
            var messageDetails = new Core.Message()
            {
                Author    = await users.RetrieveById(user),
                CreatedAt = DateTime.Now,
                Text      = message
            };

            await Clients.Group(channelId).SendAsync("newMessage", messageDetails);

            var createdMessageId = await messages.Create(messageDetails);

            await channels.AddMessage(channelId, user, createdMessageId);
        }
        private void PrintMessage(Core.Message message)
        {
            if (chatBox.Text.Length > 0 && !chatBox.Text.EndsWith("\n"))
            {
                chatBox.AppendText(Environment.NewLine);
            }

            int offset = chatBox.TextLength;

            chatBox.AppendText(message.Sender + ":");
            chatBox.Select(offset, chatBox.TextLength - offset);
            chatBox.SelectionColor = Color.Blue;

            offset = chatBox.TextLength;
            chatBox.AppendText(" " + message.Text);
            chatBox.Select(offset, chatBox.TextLength - offset);
            chatBox.SelectionColor = Color.Black;

            chatBox.Select(chatBox.TextLength, 0);
            chatBox.ScrollToCaret();
        }
        public void MessageToStream()
        {
            var message = new Core.Message();
            message.Address = "foo";

            message.Init("MrBoolean", true);
            message.Init("MrDouble", Math.PI);
            message.Init("MsString", "lorem");
            message["MsString"].Add("ipsum");

            message["Empty"] = Bin.New(typeof (bool));

            var stream = message.Serialize();
            var newMessage = stream.DeSerializeMessage();

            Assert.AreEqual(message["MrBoolean"].ToString(), newMessage["MrBoolean"].ToString());
            Assert.AreEqual(message["MsString"].ToString(), newMessage["MsString"].ToString());
            Assert.AreEqual(0, newMessage["Empty"].Count);


        }
        public override void Evaluate(int SpreadMax)
        {
            SpreadMax = 0;
            if (!FSet[0])
            {
                //if (FInput.IsChanged)
                //{

                //}
                
                FOutput.SliceCount = 0;
                FOutput.Flush();
                return;
            }

            foreach (string name in FPins.Keys)
            {
                var pin = ToISpread(FPins[name]);
                pin.Sync();
                SpreadMax = Math.Max(pin.SliceCount, SpreadMax);
            }


            FOutput.SliceCount = SpreadMax;
            for (int i = 0; i < SpreadMax; i++)
            {
                Core.Message message = new Core.Message();

                message.Address = FAddress[i];
                foreach (string name in FPins.Keys)
                {
                    message.AssignFrom(name, (IEnumerable)ToISpread(FPins[name])[i]);
                }
                FOutput[i] = message;

                // FLogger.Log(LogType.Debug, "== Message "+i+" == \n" + message.ToString());
                //	foreach (string name in message.GetDynamicMemberNames()) FLogger.Log(LogType.Debug, message[name].GetType()+" "+ name);
            }
            FOutput.Flush();
        }
Exemple #10
0
        public override void HandleMessage(Core.Message message)
        {
            base.HandleMessage(message);
            switch (message.Type)
            {
            case Messages.CameraSetZoom:
                this.startzoom = this.Camera.Zoom;
                if (message.Data is float)
                {
                    this.Camera.TargetZoom = (float)message.Data;
                }
                else if (message.Data is int)
                {
                    this.Camera.TargetZoom = (int)message.Data;
                }
                else
                {
                    this.Camera.TargetZoom = 1;
                }

                this.transition = 1;
                break;
            }
        }
Exemple #11
0
 internal InviteDeclined(Core.Message message)
     : base(message.Data)
 {
 }
Exemple #12
0
 internal Invite(Core.Message message)
     : base(message.Data)
 {
 }
Exemple #13
0
        internal static bool IsElement(Core.Message message)
        {
            Invite temp = new Invite(message);

            return(temp?.XElement?.NamespaceURI == MucNs.NsUser && temp?.InviteElement != null);
        }
Exemple #14
0
 /// <summary>
 /// Initializes a new instance of the Message class from the specified
 /// instance.
 /// </summary>
 /// <param name="message">An instance of the Core.Message class to
 /// initialize this instance with.</param>
 /// <exception cref="ArgumentNullException">The message parameter is null.</exception>
 /// <exception cref="ArgumentException">The 'type' attribute of
 /// the specified message stanza is invalid.</exception>
 internal Message(Core.Message message)
     : this(message.Data, DelayedDelivery.GetDelayedTimestampOrNow(message.Data))
 {
 }
 internal DirectMucInvite(Core.Message message)
     : base(message.Data)
 {
 }
        internal static bool IsElement(Core.Message message)
        {
            DirectMucInvite temp = new DirectMucInvite(message);

            return(temp?.XElement?.NamespaceURI == conference && temp?.InviteElement != null);
        }
Exemple #17
0
        internal static bool IsElement(Core.Message message)
        {
            DirectInvite temp = new DirectInvite(message);

            return(temp?.Data["x"]?.NamespaceURI == "jabber:x:conference");
        }
Exemple #18
0
        public bool Input(Im.Message stanza)
        {
            if (MucError.IsError(stanza))
            {
                // Unable to send a message... many reasons
                var error = new MucError(stanza);
                MucErrorResponse?.Raise(this, new GroupErrorEventArgs(error));
                return(true);
            }

            if (Invite.IsElement(stanza))
            {
                // Incoming chat room invite
                var invite = new Invite(stanza);
                InviteReceived.Raise(this, new GroupInviteEventArgs(invite));
                return(true);
            }

            if (DirectInvite.IsElement(stanza))
            {
                // Incoming chat room invite
                var invite = new DirectInvite(stanza);
                InviteReceived.Raise(this, new GroupInviteEventArgs(invite));
                return(true);
            }


            if (InviteDeclined.IsElement(stanza))
            {
                // Chat room invite was declined
                var invite = new InviteDeclined(stanza);
                InviteWasDeclined.Raise(this, new GroupInviteDeclinedEventArgs(invite));
                return(true);
            }

            if (stanza.Subject != null)
            {
                // Subject change
                SubjectChanged.Raise(this, new Im.MessageEventArgs(stanza.From, stanza));
                return(true);
            }

            // Things that could happen here:
            // Receive Registration Request
            // Receive Voice Request
            XmlElement xElement = stanza.Data["x"];

            if (xElement != null && xElement.NamespaceURI == MucNs.NsXData)
            {
                switch (xElement.FirstChild.Value)
                {
                default:
                    break;

                case MucNs.NsRequest:
                    // Invoke Voice Request Submission callback/event.
                    // 8.6 Approving Voice Requests
                    if (VoiceRequested != null)
                    {
                        SubmitForm form    = VoiceRequested.Invoke(new RequestForm(xElement));
                        var        message = new Core.Message(stanza.From, im.Jid, form.ToXmlElement());
                        SendMessage(message);
                        return(true);
                    }
                    break;

                case MucNs.NsRegister:
                    // Invoke Registration Request Submission callback/event.
                    // 9.9 Approving Registration Requests
                    // I'm unsure on how to implement this.
                    // return true;
                    break;
                }
            }

            // Any message with a body can be managed by the IM extension
            // Such as Group Chat Message & Group Chat History
            return(false);
        }
 void OnSendMessage(object obj)
 {
     if (Message == null) Message = new Core.Message(Provider.Id, new List<string>() { Observer.Id }, "some_message");
     Provider.Send(Message);
 }
Exemple #20
0
 private void SendMessage(Core.Message message)
 {
     im.SendMessage(new Im.Message(message));
 }
Exemple #21
0
 public void Broadcast(Core.Message message)
 {
     var broadcastMessage = new Core.Message(message.From, null, message.Content);
     _messageServer.SendMessage(broadcastMessage);
 }