Beispiel #1
0
        private void Chat(string messageTarget, string to, FontOptions font, string chatMessage, DateTime timestamp, EventHandler <ReplyEventArgs> callback)
        {
            VerifyLoggedIn();

            string colorString = string.Format("#{0}{1}{2}", font.Color.R.ToString("x2"), font.Color.G.ToString("x2"), font.Color.B.ToString("x2"));

            var message = protocol.CreateMessage("chat." + messageTarget);

            message["to"]             = to;
            message["font"]           = new JObject();
            message["font"]["family"] = font.Family;
            message["font"]["color"]  = colorString;
            message["font"]["style"]  =
                (font.Style.HasFlag(FontStyle.Bold) ? "b" : "") +
                (font.Style.HasFlag(FontStyle.Italic) ? "i" : "") +
                (font.Style.HasFlag(FontStyle.Underline) ? "u" : "");
            message["body"]      = Convert.ToBase64String(Encoding.UTF8.GetBytes(chatMessage));
            message["timestamp"] = timestamp.ToString("o");

            protocol.SendMessage(message, (messageName, result, reply) =>
            {
                ReplyEventArgs args;
                switch (result)
                {
                case Network.ReplyResult.Success:
                    args = new ReplyEventArgs(Convert.ToInt32(reply["result"]), Convert.ToString(reply["result_message"]));
                    break;

                case Network.ReplyResult.Fail:
                    args = new ReplyEventArgs((int)ResultCode.NotSent, MessageNotSentString);
                    break;

                case Network.ReplyResult.Expired:
                    args = new ReplyEventArgs((int)ResultCode.NoReply, NoReplyString);
                    break;

                default:
                    throw new Exception("This should not happen");
                }
                if (callback != null)
                {
                    callback(this, args);
                }
            });
        }
Beispiel #2
0
        private void Chat(string messageTarget, string to, FontOptions font, string chatMessage, DateTime timestamp, EventHandler<ReplyEventArgs> callback)
        {
            VerifyLoggedIn();

            string colorString = string.Format("#{0}{1}{2}", font.Color.R.ToString("x2"), font.Color.G.ToString("x2"), font.Color.B.ToString("x2"));

            var message = protocol.CreateMessage("chat." + messageTarget);
            message["to"] = to;
            message["font"] = new JObject();
            message["font"]["family"] = font.Family;
            message["font"]["color"] = colorString;
            message["font"]["style"] =
                (font.Style.HasFlag(FontStyle.Bold) ? "b" : "") +
                (font.Style.HasFlag(FontStyle.Italic) ? "i" : "") +
                (font.Style.HasFlag(FontStyle.Underline) ? "u" : "");
            message["body"] = Convert.ToBase64String(Encoding.UTF8.GetBytes(chatMessage));
            message["timestamp"] = timestamp.ToString("o");

            protocol.SendMessage(message, (messageName, result, reply) =>
                {
                    ReplyEventArgs args;
                    switch (result)
                    {
                        case Network.ReplyResult.Success:
                            args = new ReplyEventArgs(Convert.ToInt32(reply["result"]), Convert.ToString(reply["result_message"]));
                            break;

                        case Network.ReplyResult.Fail:
                            args = new ReplyEventArgs((int) ResultCode.NotSent, MessageNotSentString);
                            break;

                        case Network.ReplyResult.Expired:
                            args = new ReplyEventArgs((int) ResultCode.NoReply, NoReplyString);
                            break;

                        default:
                            throw new Exception("This should not happen");
                    }
                    if (callback != null)
                        callback(this, args);
                });
        }
Beispiel #3
0
        public void ChangeStatus(UserStatus status, EventHandler<ReplyEventArgs> callback)
        {
            VerifyLoggedIn();

            Contract.Requires(protocol != null);

            var message = protocol.CreateMessage("me.status");
            message["status"] = status.ToString();

            protocol.SendMessage(message, (messageName, result, reply) =>
                {
                    ReplyEventArgs args;
                    switch (result)
                    {
                        case Network.ReplyResult.Success:
                            me.Update(new UserDescription()
                            {
                                Name = me.Name,
                                DisplayName = me.DisplayName,
                                Status = status,
                                Friend = false,
                            });

                            var meArray = new IUser[] { me };

                            UserDetailsChange.SafeInvoke(this, new UserDetailsEventArgs(Enumerable.Empty<IUser>(), meArray));

                            args = new ReplyEventArgs(Convert.ToInt32(reply["result"]), Convert.ToString(reply["result_message"]));
                            break;

                        case Network.ReplyResult.Fail:
                            args = new ReplyEventArgs((int) ResultCode.NotSent, MessageNotSentString);
                            break;

                        case Network.ReplyResult.Expired:
                            args = new ReplyEventArgs((int) ResultCode.NoReply, NoReplyString);
                            break;

                        default:
                            throw new Exception("This should not happen");
                    }
                    callback.SafeInvoke(this, args);
                });
        }