private IMenuItem CreateUserBlock(string username, ChatObj chat) { MenuItemGrid item = new MenuItemGrid(username, 5, 3); MenuItemText usernameBlock = new MenuItemText("username"); item.AddChild(0, 0, 4, 1, usernameBlock); usernameBlock.SetText(username); usernameBlock.SetFontSize(8, 15); usernameBlock.SetTextStyle(UnityEngine.FontStyle.Bold); MenuItemText lastMsgBlock = new MenuItemText("lastMsg"); item.AddChild(0, 1, 4, 2, lastMsgBlock); string text = chat.Messages.Last().Message; if (text.Length > MAX_MSG_LEN) { text = text.Substring(0, MAX_MSG_LEN - 3); text += "..."; } lastMsgBlock.SetText(text); lastMsgBlock.SetFontSize(5, 10); lastMsgBlock.SetAlignment(UnityEngine.TextAnchor.MiddleLeft); MenuItemButton openChat = new MenuItemButton("openChat"); item.AddChild(4, 0, 1, 3, openChat); openChat.SetText(">"); openChat.Clicked += () => ChatSelected?.Invoke(chat); return(item); }
public void OpenChat(ChatObj chat) { _currChat = chat; _toUserId = chat.User1 == _userId ? chat.User2 : chat.User1; _toUsername = _api.DefaultApps.Friends.ListFriends().Wait().Find(x => x.UserId == _toUserId)?.Username; _headerItem.SetText(_toUsername); if (_toUsername == null) { _toUsername = "******"; } Rerender(); }
private byte[] SendMessage(ulong from, ulong to, string message, MsgContext ctx) { InitChat(from, to); ChatObj chat = _chats[from][to]; ChatObjMsg msg = new ChatObjMsg((ulong)DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), from, to, message); lock (chat) { chat.Messages.Add(msg); AddToQueue(to, msg); } return(null); }
private void InitChat(ulong from, ulong to) { if (!_chats.ContainsKey(from)) { _chats.Add(from, new Dictionary <ulong, ChatObj>()); } if (!_chats.ContainsKey(to)) { _chats.Add(to, new Dictionary <ulong, ChatObj>()); } if (!_chats[from].ContainsKey(to)) { ChatObj newChat = new ChatObj(Math.Min(from, to), Math.Max(from, to)); _chats[from].Add(to, newChat); _chats[to].Add(from, newChat); _allChats.Add(newChat); } }
public void SubmitChat(ChatObj toSubmit) { lock (_ChatLock) { var query = from u in db.Users where u.UserID == toSubmit.UserID select u; if (query.Count() == 1) { ChatRoom newChat = new ChatRoom() { Date = toSubmit.Date, Text = toSubmit.Text, UserID = toSubmit.UserID }; db.ChatRooms.InsertOnSubmit(newChat); db.SubmitChanges(); } } }
public List <ChatObj> Post(ChatObj next) { DraftUser user = DraftAuthentication.AuthenticateRequest(Request); String text = next.Text; if (!String.IsNullOrWhiteSpace(text)) { this.dataSource.SubmitChat(new ChatObj() { Text = text.Trim(), UserID = user.ID, Date = DateTime.Now }); } List <ChatObj> chatData = this.dataSource.GetChatData(); return(chatData); }
private void OnChatSelected(ChatObj chat) { _chatBlock.OpenChat(chat); }