/// <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; } }
/// <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); } }
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(); }
//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); }
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(); } } }
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); }
/// <summary> /// 微信同步检测(检查是否有新消息),返回非空为有新消息 /// </summary> /// <returns></returns> public string WxSyncCheck() { try { return(MessageSync.WxSyncCheck()); //同步检查 } catch (Exception ex) { return(null); } }
/// <summary> /// 初始化并返回最近联系人 /// </summary> /// <returns></returns> public List <object> Load() { try { return(MessageSync.Message()); } catch (Exception ex) { return(null); } }
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); }); }
/// <summary> /// 好友列表 /// </summary> public List <object> FriendLists() { try { //加载好友列表数据 return(MessageSync.FriendsList()); } catch (Exception ex) { return(null); } }
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); } }
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); } }
/// <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); }
public async Task Send(ReminderOrder order) { await MessageSync.WriteOrderMessage(order.Account, order.BuyerID, order.OrderNO, order.Msg); }