//接收消息 private void GetMsgHandler(object sender, TalkContract talk) { PerMsg msg = new PerMsg(talk.SenderName, talk.Content); Chat chat = chats.Where(p => p.SenderId.Equals(talk.SenderId)).FirstOrDefault(); if (chat == null) { chat = new Chat { SenderId = talk.SenderId, SenderName = talk.SenderName, ReceiverId = talk.ReceiverId, Msgs = new MsgList() }; chat.Msgs.Add(msg); Dispatcher.Invoke(() => { chats.Add(chat); }); } else { Dispatcher.Invoke(() => { chat.Msgs.Add(msg); }); } }
/// <summary> /// 显示发出的消息 /// </summary> /// <param name="msg"></param> private void ShowSendMsg(ChatMsgData msg) { try { ChatMsg chatmsg = new ChatMsg(); chatmsg.Image = _me.Icon; //此处的Paragraph必须是新New的 if (msg.Type == 9) { Paragraph imgper = new Paragraph(); imgper.Inlines.Add(new InlineUIContainer(msg.MsgImg)); chatmsg.Message.Blocks.Add(imgper); } else { StrToFlDoc(msg.Msg, chatmsg.Message); } chatmsg.FlowDir = FlowDirection.RightToLeft; chatmsg.TbColor = (System.Windows.Media.Brush) new BrushConverter().ConvertFromString("#FF98E165"); ChatList.Add(chatmsg); } catch (Exception ex) { Console.WriteLine(ex); } }
/// <summary> /// 显示收到的信息 /// </summary> /// <param name="msg"></param> private void ShowReceiveMsg(ChatMsgData msg) { ChatMsg chatmsg = new ChatMsg(); Contact_all.ForEach(p => { if (p is ChatUser) { if ((p as ChatUser).UserName == msg.From) { chatmsg.Image = (p as ChatUser).Icon; return; } } }); if (msg.Type == 9) { Paragraph imgper = new Paragraph(new Floater(new BlockUIContainer(msg.MsgImg))); chatmsg.Message.Blocks.Add(imgper); } else { StrToFlDoc(msg.Msg, chatmsg.Message); } chatmsg.FlowDir = FlowDirection.LeftToRight; chatmsg.TbColor = System.Windows.Media.Brushes.White; ChatList.Add(chatmsg); }
public void UpdateCollection(Chat chat) { App.Current.Dispatcher.Invoke((Action) delegate // <--- HERE { ChatList.Add(chat); }); }
private void chatservice_OnMessageReceived(object sender, ChatMessage e) { Device.BeginInvokeOnMainThread(() => ChatList.Add(new ChatMessage { LineOne = e.LineOne })); }
public void InitializedChatsPage(SavedChats savedChats) { try { if (savedChats.SavedPrivateChats != null) { ChatList = new ObservableCollection <PrivateChat>(savedChats.SavedPrivateChats); } ChatList.Add(new PrivateChat { Name = "Олександр Журба" }); ChatList.Add(new PrivateChat { Name = "Fedir Khydzik" }); ChatList.Add(new PrivateChat { Name = "Olya Ivanenko" }); ChatList.Add(new PrivateChat { Name = "Віталій Пилипенко" }); ChatList.Add(new PrivateChat { Name = "Іван Пилипенко" }); ChatList.Add(new PrivateChat { Name = "Volodya Ivan" }); } catch (Exception) { return; } }
public App() { this.InitializeComponent(); ChatList.Add(new Chatitem("안녕하세요 server입니다 병신아.", "server", "19:20:22", false)); ChatList.Add(new Chatitem("안녕하세요 Client 입니다 병신아.", "Client", "19:20:22", true)); ClientList.Add(new ClientItem("SERVER", "SERVER입니다 반갑습니다.", true)); ClientList.Add(new ClientItem("ME", "나 자신임", false)); }
/// <summary> /// 显示发出的消息 /// </summary> /// <param name="msg"></param> private void ShowSendMsg(WeChatMsg msg) { ChatMsg chatmsg = new ChatMsg(); chatmsg.Image = _me.Icon; chatmsg.Message = msg.Msg; chatmsg.FlowDir = FlowDirection.RightToLeft; chatmsg.TbColor = (Brush) new BrushConverter().ConvertFromString("#FF98E165"); ChatList.Add(chatmsg); }
public PacketChatPartyWriteResult(IL2RPacket packet) { //packet.Skip(2); ushort numMessages = packet.ReadUInt16(); for (int i = 0; i < numMessages; i++) { ChatList.Add(new PacketChat(packet)); } }
/// <summary> /// Initializes a new instance of the <see cref="PacketChatGuildWriteResult"/> class. /// </summary> /// <param name="packet">The packet.</param> public PacketChatGuildWriteResult(IL2RPacket packet) { packet.Skip(2); LastChatID = packet.ReadUInt64(); numMessages = packet.ReadUInt16(); for (int i = 0; i < numMessages; i++) { ChatList.Add(new PacketChat(packet)); } }
public void AddChat(params WeChatUser[] chat) { foreach (var item in chat) { if (ChatList.Any(p => p.UserName == item.UserName)) { continue; } ChatList.Add(item); ChatImageDownloadService.Add(item); } }
public static void AddMessage(string chatName, string content, string type) { if (!ChatList.Exists(B => B.ChatName == chatName)) { ChatList.Add( new Chat(chatName, content, Instantiate(instance.ChatPrefab, instance.ChatHolder, false)) ); } else { ChatList.Single(B => B.ChatName == chatName).AddMessage(content, type); } }
//private async void LoadData() { // List<ChatModel> ListChats = await App.Database.GetItemsNotDoneAsyncByRegion(region); // ChatList = new ObservableCollection<ChatModel>(ListChats); // List<ChatModel> ListChatsRead = await App.Database.GetItemsNotDoneAsyncByRegionAndIsRead(region, "1"); // //ObservableCollection<ChatModel> ReadList = new ObservableCollection<ChatModel>(ListChatsRead as List<ChatModel>); // //GroupedChatModel chatModelRead = new GroupedChatModel // //{ // // LongName = "Read", // // ShortName = "Read" // //}; // List<ChatModel> ListChatsNotRead = await App.Database.GetItemsNotDoneAsyncByRegionAndIsRead(region, "0"); // //ObservableCollection<ChatModel> UnReadList = new ObservableCollection<ChatModel>(ListChatsRead as List<ChatModel>); // //GroupedChatModel chatModelUnRead = (UnReadList as GroupedChatModel); // //chatModelUnRead.LongName = "UnRead"; // //chatModelUnRead.ShortName = "UnRead"; // var ReadGroup = new GroupedChatModel() { LongName = "Read", ShortName = "R" }; // foreach (ChatModel chat in ListChatsRead ){ // ReadGroup.Add(chat); // } // var UnReadGroup = new GroupedChatModel() { LongName = "Unread", ShortName = "U" }; // foreach (ChatModel chat in ListChatsNotRead) // { // UnReadGroup.Add(chat); // } // ObservableCollection<GroupedChatModel> grouped = new ObservableCollection<GroupedChatModel> // { // ReadGroup, // UnReadGroup // }; // Grouped = grouped; //} private async void SendMsg() { var Chat = new ChatModel { Message = MessageSend, Type = 1, Region = region }; await App.Database.SaveItemAsync(Chat); ChatList.Add(Chat); MessageSend = null; }
private void btnChatAddOne_Click(object sender, RoutedEventArgs e) { PerMsg pt1 = new PerMsg("test", "ceshi"); PerMsg pt2 = new PerMsg("test", "ceshi"); PerMsg pt3 = new PerMsg("test", "ceshi"); MsgList mt1 = new MsgList(); mt1.Add(pt1); mt1.Add(pt2); mt1.Add(pt3); //model.AllChatWaitReads += 1; //chats.Add(new Chat { SenderId = "8888", sName = "test", ReceiverId = "1111", Content = "测试测试测试测试测试测试", Msgs = mt1 }); chats.Add(new Chat("8888", "test", "1111", "测试测试测试测试测试测试", mt1, 0)); }
// this method will deserialize chat json string public static void DeserializeChat(string json) { // first clear the List of Chats ChatList.Clear(); JArray jarr = JArray.Parse(json); // get the results fragment of the json as a list of JTokens List <JToken> results = jarr.Children().ToList(); // populate the list foreach (JToken result in results) { Chat chat = result.ToObject <Chat>(); ChatList.Add(chat); } }
/// <summary> /// 显示发出的消息 /// </summary> /// <param name="msg"></param> private void ShowSendMsg(WeChatMsg msg) { try { ChatMsg chatmsg = new ChatMsg(); chatmsg.Image = _me.Icon; //此处的Paragraph必须是新New的 Paragraph par = new Paragraph(); StrToFlDoc(msg.Msg, chatmsg.Message, par); chatmsg.FlowDir = FlowDirection.RightToLeft; chatmsg.TbColor = (System.Windows.Media.Brush) new BrushConverter().ConvertFromString("#FF98E165"); ChatList.Add(chatmsg); } catch (Exception ex) { Console.WriteLine(ex); } }
public void ReturnCallback(EChatItem item, object obj) { switch (item) { case EChatItem.Chat: App.Current.Dispatcher.BeginInvoke((Action) delegate() { ChatList.Add(obj as ChatItem); }); break; case EChatItem.User: App.Current.Dispatcher.BeginInvoke((Action) delegate() { UserList.Add(obj as User); }); break; case EChatItem.UserExit: App.Current.Dispatcher.BeginInvoke((Action) delegate() { User target = null; foreach (var user in UserList) { if (user.Name == (string)obj) { target = user; break; } } if (target != null) { UserList.Remove(target); } }); break; default: Debugger.Break(); break; } }
/// <summary> /// 显示收到的信息 /// </summary> /// <param name="msg"></param> private void ShowReceiveMsg(WeChatMsg msg) { ChatMsg chatmsg = new ChatMsg(); Contact_all.ForEach(p => { if (p is WeChatUser) { if ((p as WeChatUser).UserName == msg.From) { chatmsg.Image = (p as WeChatUser).Icon; return; } } }); chatmsg.Message = msg.Msg; chatmsg.FlowDir = FlowDirection.LeftToRight; chatmsg.TbColor = Brushes.White; ChatList.Add(chatmsg); }
/// <summary> /// 显示收到的信息 /// </summary> /// <param name="msg"></param> private void ShowReceiveMsg(WeChatMsg msg) { ChatMsg chatmsg = new ChatMsg(); Contact_all.ForEach(p => { if (p is WeChatUser) { if ((p as WeChatUser).UserName == msg.From) { chatmsg.Image = (p as WeChatUser).Icon; return; } } }); Paragraph par = new Paragraph(); StrToFlDoc(msg.Msg, chatmsg.Message, par); chatmsg.FlowDir = FlowDirection.LeftToRight; chatmsg.TbColor = System.Windows.Media.Brushes.White; ChatList.Add(chatmsg); }
public ClientWindow(TCPHelper helper, List <User> users, List <TalkContract> talks, List <AddFriend> addFriends, string id, string name) { this.UserName = name; model = new ClientViewModel(); friends = new FriendList(); chats = new ChatList(); notices = new NoticeList(); model.AllNoticeWaitReads = 0; model.AllFriendWaitReads = 0; model.AllChatWaitReads = 0; #region 数据到视图模型的转换 foreach (var u in users) { friends.Add(new Friend { UserId = u.UserId, UserName = u.UserName, IP = u.ip, status = u.IsOnline }); } var senders = talks.Select(p => p.SenderId).ToList().Distinct(); foreach (var s in senders) { MsgList m = new MsgList(); var records = talks.Where(p => p.SenderId.Equals(s)).Select(q => q).ToList(); foreach (var r in records) { m.Add(new PerMsg { SenderName = talks.Where(p => p.SenderId.Equals(r.SenderId)).Select(q => q.SenderName).FirstOrDefault(), Msg = r.Content }); } chats.Add(new Chat { SenderId = s, SenderName = talks.Where(p => p.SenderId.Equals(s)).Select(p => p.SenderName).FirstOrDefault(), ReceiverId = talks.Where(x => x.SenderId.Equals(s)).Select(y => y.ReceiverId).FirstOrDefault(), Msgs = m, WaitReadNum = m.Count }); } foreach (var n in addFriends) { notices.Add(new Notice { UserId = n.UserId, UserName = "******", status = Status.Waiting }); } foreach (var c in chats) { model.AllChatWaitReads += c.WaitReadNum; } model.AllNoticeWaitReads = notices.Count(); #endregion this.LocalId = id; InitializeComponent(); this.Closing += ClientWindow_Closing; CC.DataHandle.UpdateFriendHandler += DataHandle_UpdateFriendHandler; CC.DataHandle.SearchHandler += SearchCallBack; CC.DataHandle.AddComfirmHandler += AddComfimCallback; CC.DataHandle.RemoveFriendHandler += DataHandle_RemoveFriendHandler; CC.DataHandle.GetMsgHandler += GetMsgHandler; WindowStartupLocation = WindowStartupLocation.CenterScreen; this.lblID.Content = LocalId; this.helper = helper; //绑定关联数据 this.tabMain.DataContext = model; this.gChat.DataContext = chats; this.gFriend.DataContext = friends; this.gNotice.DataContext = notices; this.listChat.AddHandler(UIElement.MouseDownEvent, new MouseButtonEventHandler(listChat_MouseLeftButtonDown), true); this.listChat.AddHandler(UIElement.MouseDownEvent, new MouseButtonEventHandler(listChat_MouseRightButtonDown), true); this.listNotice.AddHandler(UIElement.MouseDownEvent, new MouseButtonEventHandler(listNotice_MouseLeftButtonDown), true); }
private async void RetrieveMessage() { IsBusy = true; var chats = await remoteService.RetrieveMessage(); chats.Reverse(); ChatUsernameList.Clear(); ChatList.Clear(); IsBusy = false; foreach (var item in chats) { if (item.SenderId == Settings.KeySettings) { var chat = new DisplayChat() { Name = item.Receiver, Id = item.ReceiverId, //Email = item.ReceiverEmail, Message = item.Message, Avatar = item.ReceiverAvatar }; if (ChatUsernameList.Count == 0 && ChatList.Count == 0) { ChatUsernameList.Add(item.Receiver); ChatList.Add(chat); } else { if (!ChatUsernameList.Contains(item.Receiver)) { ChatUsernameList.Add(item.Receiver); ChatList.Add(chat); } } } else if (item.ReceiverId == Settings.KeySettings) { var chat = new DisplayChat() { Name = item.Sender, Id = item.SenderId, //Email = item.SenderEmail, Message = item.Message, Avatar = item.SenderAvatar }; if (ChatUsernameList.Count == 0 && ChatList.Count == 0) { ChatUsernameList.Add(item.Sender); ChatList.Add(chat); } else { if (!ChatUsernameList.Contains(item.Sender)) { ChatUsernameList.Add(item.Sender); ChatList.Add(chat); } } } } }
public void AddChat(PassengerChat passengerChat) { ChatList.Add(passengerChat); }
public PacketChatWorldWriteNotify(IL2RPacket packet) { ChatList.Add(new PacketChat(packet)); }
/// <summary> /// Initializes a new instance of the <see cref="PacketChatPartyWriteNotify" /> class. /// </summary> /// <param name="packet">The packet.</param> public PacketChatPartyWriteNotify(IL2RPacket packet) { //Packet.skip(2); ChatList.Add(new PacketChat(packet)); }
private async void LoadChat() { try { var json1 = await Client.GetStringAsync(new Uri("http://localhost:5000/api/User/passenger/chat/" + Seat)); IList <Chat> chats = JsonConvert.DeserializeObject <IList <Chat> >(json1); chats.OrderBy(c => c.Name); foreach (var chat in chats) { ChatList.Add(chat); } ErrorMessage = null; IList <Chat> chatlist = new List <Chat>(); while (true) { try { bool update = false; var json = await Client.GetStringAsync(new Uri("http://localhost:5000/api/User/passenger/chat/" + Seat)); IList <Chat> chatlistFromApi = JsonConvert.DeserializeObject <IList <Chat> >(json); if (chatlistFromApi.Count == 0) { throw new ArgumentNullException(); } chatlistFromApi.OrderBy(c => c.Name); int lenght = chatlist.Count(); if (chatlistFromApi.Count() == lenght) { if (chatlistFromApi.Count() != 0) { if (chatlist.Count() != 0) { for (int i = 0; i < lenght; i++) { if (CompareLists(chatlist[i].Messages, chatlistFromApi[i].Messages)) { update = true; break; } } } else { update = true; } } } else { update = true; } if (update) { chatlist = chatlistFromApi; for (int i = 0; i < ChatList.Count(); i++) { List <Message> newMessages = chatlist[i].Messages; ChatList[i].Messages = newMessages; if (SelectedChat != null) { ShowMessages(SelectedChat); } } } ErrorMessage = null; Thread.SpinWait(5000); } catch (ArgumentNullException) { ErrorMessage = "No chats available!"; } catch (Exception) { ErrorMessage = "Something went wrong! Please try again later."; } } } catch (Exception) { ErrorMessage = "Something went wrong! Please try again later."; } }
/// <summary> /// Initializes a new instance of the <see cref="PacketChatWorldWriteResult" /> class. /// </summary> /// <param name="packet">The packet.</param> public PacketChatWorldWriteResult(IL2RPacket packet) { packet.Skip(2); ChatList.Add(new PacketChat(packet)); }