Example #1
0
        //接收消息
        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);
                });
            }
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        /// <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);
     });
 }
Example #5
0
 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; }
        }
Example #7
0
 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));
 }
Example #8
0
        /// <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));
            }
        }
Example #10
0
        /// <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));
            }
        }
Example #11
0
 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);
     }
 }
Example #12
0
 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);
     }
 }
Example #13
0
        //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;
        }
Example #14
0
        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));
        }
Example #15
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);
            }
        }
Example #16
0
 /// <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);
     }
 }
Example #17
0
        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;
            }
        }
Example #18
0
        /// <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);
        }
Example #19
0
        /// <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);
        }
Example #20
0
        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);
        }
Example #21
0
        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);
                        }
                    }
                }
            }
        }
Example #22
0
 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));
 }
Example #25
0
        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));
        }