Ejemplo n.º 1
0
 /// <summary>
 /// 好友列表点击
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void pbFriends_Click(object sender, EventArgs e)
 {
     try
     {
         ((Action)(delegate()
         {
             this.pbFriends.BackgroundImage = Resources.haoyou2;
             pbMessage.BackgroundImage = Resources.message1_2_;
             List <object> data = MessageSync.FriendsList();
             this.BeginInvoke((Action) delegate()
             {
                 wFriendsList.Items.Clear();
                 wFriendsList.Width = 215;
                 wFriendsList.Height = 446;
                 wFriendsList.Items.AddRange(data.ToArray());  //好友列表
                 this.panelList.Controls.Clear();
                 this.panelList.Controls.Add(wFriendsList);
                 wFriendsList.Show();
             });
         })).BeginInvoke(null, null);
     }
     catch (Exception)
     {
         throw;
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 微信同步(获取最新消息)
 /// </summary>
 /// <returns></returns>
 public List <object> WxSync()
 {
     try
     {
         WXResult      wxResult    = new WXResult();
         JObject       sync_result = MessageSync.WxSync(); //同步检查
         List <object> msgList     = new List <object>();
         if (sync_result != null)
         {
             if (sync_result["AddMsgCount"] != null && sync_result["AddMsgCount"].ToString() != "0")
             {
                 foreach (JObject m in sync_result["AddMsgList"])
                 {
                     WXMsg msg = new WXMsg();
                     msg.From = m["FromUserName"].ToString();
                     msg.To   = m["ToUserName"].ToString();
                     msg.Msg  = m["Content"].ToString();
                     msg.Type = int.Parse(m["MsgType"].ToString());
                     msgList.Add(msg);
                 }
                 return(msgList);
             }
         }
         return(null);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Ejemplo n.º 3
0
        public Main()
        {
            InitializeComponent();
            pbTop.BringToFront();
            ((Action)(delegate()
            {
                //加载好友列表数据
                MessageSync.Friends();
                //加载最近消息
                pbMessage_Click(null, null);
                if (MessageSync.friends_result["MemberList"] != null)
                {
                    foreach (var item in MessageSync.friends_result["MemberList"])
                    {
                        if (item["NickName"].ToString() == "yuyasong")
                        {
                            userName = item["UserName"].ToString();
                            break;
                        }
                    }
                }
            })).BeginInvoke(null, null);

            PublicWindows.messageBoxs.Width  = 540;
            PublicWindows.messageBoxs.Height = 419;
            panelChat.Controls.Add(PublicWindows.messageBoxs);
            PublicWindows.messageBoxs.Hide();
        }
Ejemplo n.º 4
0
        //private List<OrderMessageEx> DealMessage(IEnumerable<OrderMessage> msgs) {
        //    if (msgs == null || msgs.Count() == 0)
        //        return new List<OrderMessageEx>();

        //    var mes = msgs.Select(m => {
        //        var me = new OrderMessageEx();
        //        //DynamicCopy.CopyProperties(m, me);
        //        DynamicCopy.CopyTo(m, me);
        //        return me;
        //    }).ToList();

        //    var f = mes.First().Sender;
        //    mes.ForEach(m => {
        //        m.Left = m.Sender.Equals(f);
        //    });

        //    return mes;
        //}

        public async Task Sync()
        {
            this.IsBusy   = true;
            this.BusyText = "正在同步订单留言...";
            this.NotifyOfPropertyChange(() => this.IsBusy);
            this.NotifyOfPropertyChange(() => this.BusyText);

            DispatcherHelper.DoEvents();

            var msgs = await MessageSync.SyncByOrderNO(this.OrderNO, this.Account);

            var msgs1 = msgs.Select(m => new OrderMessage {
                ID       = m.ID,
                Content  = m.Content,
                OrderNO  = this.OrderNO,
                Sender   = m.Sender,
                CreateOn = m.CreateOn
            }).ToList();

            //this.Msgs = this.DealMessage(msgs1);

            this.NotifyOfPropertyChange("Msgs");

            //if (this.Msgs != null && this.Msgs.Count > 0)
            if (msgs1 != null && msgs1.Count > 0)
            {
                this.Order.Messages = msgs1;
                this.Build(this.Order);
                this.OrderBiz.SaveOrderMessage(msgs1);
            }
            this.IsBusy = false;
            this.NotifyOfPropertyChange(() => this.IsBusy);
            this.NotifyOfPropertyChange(() => this.BusyText);
        }
Ejemplo n.º 5
0
        public void Sync()
        {
            var msgs  = MessageSync.SyncByOrderNO(this.OrderNo, this.Account);
            var msgs1 = msgs.Select(m => new OrderMessage {
                ID       = m.ID,
                Content  = m.Content,
                OrderNO  = this.OrderNo,
                Sender   = m.Sender,
                CreateOn = m.CreateOn
            }).ToList();

            this.Msgs = this.DealMessage(msgs1);

            this.NotifyOfPropertyChange("Msgs");

            if (this.Msgs != null && this.Msgs.Count > 0)
            {
                using (var uw = Global.MefContainer.GetExportedValue <IUnitOfWork>()) {
                    var rep = uw.GetRepository <OrderMessage>();
                    foreach (var m in msgs1)
                    {
                        rep.AddOrUpdate(m);
                    }
                    uw.Commit();
                }
            }
        }
Ejemplo n.º 6
0
        private async Task <BindableCollection <AE.MessageRelation> > LoadMsgs(AE.MessageTypes msgType, int perCount)
        {
            var msgs = await MessageSync.QueryRelations(msgType, perCount, true);

            var datas = new BindableCollection <AE.MessageRelation>(
                msgs.Where(m => !m.LastMessageIsOwn).OrderByDescending(m => m.LastMessageCreateOn)
                );

            return(datas);
        }
Ejemplo n.º 7
0
 /// <summary>
 /// 微信同步检测(检查是否有新消息),返回非空为有新消息
 /// </summary>
 /// <returns></returns>
 public string WxSyncCheck()
 {
     try
     {
         return(MessageSync.WxSyncCheck());  //同步检查
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 初始化并返回最近联系人
 /// </summary>
 /// <returns></returns>
 public List <object> Load()
 {
     try
     {
         return(MessageSync.Message());
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Ejemplo n.º 9
0
 public void Send()
 {
     this.BusyText = "正在发送...";
     this.IsBusy   = true;
     this.NotifyOfPropertyChange(() => this.IsBusy);
     this.NotifyOfPropertyChange(() => this.BusyText);
     Task.Factory.StartNew(() => {
         MessageSync.SendMessage(this.Account, this.BuyerID, this.Content);
         this.IsBusy = false;
         this.NotifyOfPropertyChange(() => this.IsBusy);
     });
 }
Ejemplo n.º 10
0
 /// <summary>
 /// 好友列表
 /// </summary>
 public List <object> FriendLists()
 {
     try
     {
         //加载好友列表数据
         return(MessageSync.FriendsList());
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Ejemplo n.º 11
0
        public async Task SendMessage()
        {
            this.IsBusy = true;
            this.NotifyOfPropertyChange(() => this.IsBusy);
            DispatcherHelper.DoEvents();
            await MessageSync.SendMessage(this.Order.Account, this.Order.BuyerID, this.Ctx);

            this.IsBusy = false;
            this.NotifyOfPropertyChange(() => this.IsBusy);

            if (this.OnSuccess != null)
            {
                this.OnSuccess(this.Order.OrderNO, this.Order.Account);
            }
        }
Ejemplo n.º 12
0
        private async Task Sync(ReminderOrder order)
        {
            var msgs = await MessageSync.SyncByOrderNO(order.OrderNO, order.Account);

            var msgs1 = msgs.Select(m => new OrderMessage {
                ID       = m.ID,
                Content  = m.Content,
                OrderNO  = order.OrderNO,
                Sender   = m.Sender,
                CreateOn = m.CreateOn
            }).ToList();

            this.NotifyOfPropertyChange("Msgs");
            if (msgs1 != null && msgs1.Count > 0)
            {
                order.Messages = msgs1;
                this.OrderBiz.SaveOrderMessage(msgs1);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 最近联系人、消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void pbMessage_Click(object sender, EventArgs e)
        {
            ((Action)(delegate()
            {
                bool _start = false;
                pbFriends.BackgroundImage = Resources.haoyou;
                pbMessage.BackgroundImage = Resources.message2_1_;
                List <object> data = MessageSync.Message();
                this.BeginInvoke((Action) delegate()
                {
                    wChatList.Items.Clear();
                    wChatList.Width = 215;
                    wChatList.Height = 446;
                    wChatList.Items.AddRange(data.ToArray());  //通讯录
                    this.panelList.Controls.Clear();
                    this.panelList.Controls.Add(wChatList);
                    wChatList.Show();
                });
                string sync_flag = "";
                JObject sync_result;
                _start = true;
                while (true)
                {
                    #region 定时回复指定人
                    this.BeginInvoke((Action) delegate()
                    {
                        //指定时间回复指定人
                        if (DateTime.Now.ToString("HH:mm:ss:ff") == "15:30:00:00")  //如果当前时间是XXXX
                        {
                            WXMsg assignMsg = new WXMsg();
                            WXUser assignUser = new WXUser();
                            assignMsg.From = MessageSync.userInfo.UserName;
                            assignMsg.Msg = "时间到了";
                            assignMsg.Readed = false;
                            assignMsg.To = userName;
                            assignMsg.Type = 1;
                            assignMsg.Time = DateTime.Now;
                            assignUser.SendMsg(assignMsg, false);
                        }
                    });
                    #endregion
                    sync_flag = MessageSync.WxSyncCheck();  //同步检查
                    if (sync_flag == null)
                    {
                        continue;
                    }
                    //这里应该判断 sync_flag中selector的值
                    else //有消息
                    {
                        sync_result = MessageSync.WxSync();  //进行同步
                        if (sync_result != null)
                        {
                            if (sync_result["AddMsgCount"] != null && sync_result["AddMsgCount"].ToString() != "0")
                            {
                                foreach (JObject m in sync_result["AddMsgList"])
                                {
                                    string from = m["FromUserName"].ToString();
                                    string to = m["ToUserName"].ToString();
                                    string content = m["Content"].ToString();
                                    string type = m["MsgType"].ToString();
                                    string MsgId = m["MsgId"].ToString();
                                    WXMsg msg = new WXMsg();
                                    msg.From = from;
                                    #region 指定回复某人
                                    this.BeginInvoke((Action) delegate()
                                    {
                                        //指定回复某人消息
                                        WXMsg assignMsg = new WXMsg();
                                        WXUser assignUser = new WXUser();
                                        if (msg.From == userName)
                                        {
                                            assignMsg.From = MessageSync.userInfo.UserName;
                                            assignMsg.Msg = "指定消息";
                                            assignMsg.Readed = false;
                                            assignMsg.To = msg.From;
                                            assignMsg.Type = 1;
                                            assignMsg.Time = DateTime.Now;
                                            assignUser.SendMsg(assignMsg, false);
                                        }
                                    });
                                    #endregion
                                    if (type == "3")
                                    {
                                        string imgBase64 = MessageSync.Image(MsgId);
                                        content = "<msg><img length=\"6503\" src=\"data:image/png;base64," + imgBase64 + "\" hdlength = \"0\" /> <commenturl></commenturl></msg>";
                                    }
                                    msg.Msg = (type == "1" || type == "3") ? content : "请在手机上查看消息";  //只接受文本消息
                                    msg.Readed = false;
                                    msg.Time = DateTime.Now;
                                    msg.To = to;
                                    msg.Type = int.Parse(type);

                                    if (msg.Type == 51)  //屏蔽一些系统数据
                                    {
                                        continue;
                                    }
                                    this.BeginInvoke((Action) delegate()
                                    {
                                        WXUser user; bool exist_latest_contact = false;
                                        foreach (Object u in wChatList.Items)
                                        {
                                            user = u as WXUser;
                                            if (user != null)
                                            {
                                                if (user.UserName == msg.From && msg.To == MessageSync.userInfo.UserName)  //接收别人消息
                                                {
                                                    wChatList.Items.Remove(user);
                                                    wChatList.Items.Insert(0, user);
                                                    exist_latest_contact = true;
                                                    user.ReceiveMsg(msg);
                                                    break;
                                                }
                                                else if (user.UserName == msg.To && msg.From == MessageSync.userInfo.UserName)  //同步自己在其他设备上发送的消息
                                                {
                                                    wChatList.Items.Remove(user);
                                                    wChatList.Items.Insert(0, user);
                                                    exist_latest_contact = true;
                                                    user.SendMsg(msg, true);
                                                    break;
                                                }
                                            }
                                        }
                                        if (!exist_latest_contact)
                                        {
                                            foreach (object o in wFriendsList.Items)
                                            {
                                                WXUser friend = o as WXUser;
                                                if (friend != null && friend.UserName == msg.From && msg.To == MessageSync.userInfo.UserName)
                                                {
                                                    wChatList.Items.Insert(0, friend);
                                                    friend.ReceiveMsg(msg);
                                                    break;
                                                }
                                                if (friend != null && friend.UserName == msg.To && msg.From == MessageSync.userInfo.UserName)
                                                {
                                                    wChatList.Items.Insert(0, friend);
                                                    friend.SendMsg(msg, true);
                                                    break;
                                                }
                                            }
                                        }
                                        wChatList.Invalidate();
                                        // System.Threading.Thread.Sleep(5);
                                    });
                                }
                            }
                        }
                    }
                    System.Threading.Thread.Sleep(10);
                }
            })).BeginInvoke(null, null);
        }
Ejemplo n.º 14
0
 public async Task Send(ReminderOrder order)
 {
     await MessageSync.WriteOrderMessage(order.Account, order.BuyerID, order.OrderNO, order.Msg);
 }