Example #1
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);
        }
Example #2
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 #3
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 #4
0
        /// <summary>
        /// 初始化
        /// </summary>
        private void Init()
        {
            //while (true)
            {
                try
                {
                    JObject       init_result = wcs.WeChatInit();
                    List <object> contact_all = new List <object>();
                    if (init_result != null)
                    {
                        Application.Current.Dispatcher.BeginInvoke((Action) delegate()
                        {
                            _me                 = new WeChatUser();
                            _me.UserName        = init_result["User"]["UserName"].ToString();
                            _me.City            = "";
                            _me.HeadImgUrl      = init_result["User"]["HeadImgUrl"].ToString();
                            _me.NickName        = init_result["User"]["NickName"].ToString();
                            _me.Province        = "";
                            _me.PyQuanPin       = init_result["User"]["PYQuanPin"].ToString();
                            _me.RemarkName      = init_result["User"]["RemarkName"].ToString();
                            _me.RemarkPYQuanPin = init_result["User"]["RemarkPYQuanPin"].ToString();
                            _me.Sex             = init_result["User"]["Sex"].ToString();
                            _me.Signature       = init_result["User"]["Signature"].ToString();
                            _me.Icon            = GetIcon(wcs, _me.UserName);
                            //部分好友名单
                            foreach (JObject contact in init_result["ContactList"])
                            {
                                WeChatUser user      = new WeChatUser();
                                user.UserName        = contact["UserName"].ToString();
                                user.City            = contact["City"].ToString();
                                user.HeadImgUrl      = contact["HeadImgUrl"].ToString();
                                user.NickName        = contact["NickName"].ToString();
                                user.Province        = contact["Province"].ToString();
                                user.PyQuanPin       = contact["PYQuanPin"].ToString();
                                user.RemarkName      = contact["RemarkName"].ToString();
                                user.RemarkPYQuanPin = contact["RemarkPYQuanPin"].ToString();
                                user.Sex             = contact["Sex"].ToString();
                                user.Signature       = contact["Signature"].ToString();
                                user.Icon            = GetIcon(wcs, user.UserName);
                                user.SnsFlag         = contact["SnsFlag"].ToString();
                                user.KeyWord         = contact["KeyWord"].ToString();
                                //跳转回UI线程操作绑定源
                                //Application.Current.Dispatcher.BeginInvoke((Action)delegate()
                                //{
                                //    _contact_latest.Add(user);
                                //});
                                //BackUIThreadAction(() => _contact_latest.Add(user));
                                _contact_latest.Add(user);
                            }
                        });
                    }
                    //通讯录
                    JObject contact_result = wcs.GetContact();
                    if (contact_result != null)
                    {//完整好友名单
                        foreach (JObject contact in contact_result["MemberList"])
                        {
                            WeChatUser user = new WeChatUser();
                            user.UserName        = contact["UserName"].ToString();
                            user.City            = contact["City"].ToString();
                            user.HeadImgUrl      = contact["HeadImgUrl"].ToString();
                            user.NickName        = contact["NickName"].ToString();
                            user.Province        = contact["Province"].ToString();
                            user.PyQuanPin       = contact["PYQuanPin"].ToString();
                            user.RemarkName      = contact["RemarkName"].ToString();
                            user.RemarkPYQuanPin = contact["RemarkPYQuanPin"].ToString();
                            user.Sex             = contact["Sex"].ToString();
                            user.Signature       = contact["Signature"].ToString();
                            user.Icon            = GetIcon(wcs, user.UserName);
                            user.SnsFlag         = contact["SnsFlag"].ToString();
                            user.KeyWord         = contact["KeyWord"].ToString();
                            user.StartChar       = GetStartChar(user);

                            contact_all.Add(user);
                        }

                        IOrderedEnumerable <object> list_all = contact_all.OrderBy(p =>
                                                                                   (p as WeChatUser).StartChar).ThenBy(p =>
                                                                                                                       (p as WeChatUser).NickName);

                        WeChatUser wcu;
                        string     start_char;
                        Application.Current.Dispatcher.BeginInvoke((Action) delegate()
                        {
                            foreach (object o in list_all)
                            {
                                wcu        = o as WeChatUser;
                                start_char = wcu.StartChar;
                                if (!Contact_all.Contains(start_char.ToUpper()))
                                {
                                    //BackUIThreadAction(() => _contact_all.Add(start_char.ToUpper()));
                                    Contact_all.Add(start_char.ToUpper());
                                }
                                //BackUIThreadAction(() => _contact_all.Add(o));
                                Contact_all.Add(o);
                            }
                        });
                    }
                    return;
                }
                catch (Exception ex)
                {
                    Logger.Instance.Exception(ex);
                }
            }
        }