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); } }); }
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); }); }
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); }); }