Beispiel #1
0
        private void sCB_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            this.Dispatcher.Invoke((Action)(delegate()   //等待结束
            {
                dGroup.Clear();
                //ObservableCollection<WxGroup> dGroups = new ObservableCollection<WxGroup>();
                Dictionary <string, string> dGroups = new Dictionary <string, string>();
                Dictionary <string, string> GroupsMembers = new Dictionary <string, string>();
                WxContact wxc = new WxContact(uin);
                foreach (var gm in wxc.GetGroupMemberNames(sCB.SelectedValue.ToString()).MemberUserNames)
                {
                    GroupsMembers.Add(gm.UserName, gm.NickName);
                }
                smCB.ItemsSource = GroupsMembers;
                //smCB.DisplayMemberPath = "Value";
                //smCB.SelectedValue = "Key";

                foreach (var g in wxc.GetGroupUserNames())
                {
                    if (g != sCB.SelectedValue.ToString())
                    {
                        dGroups.Add(wxc.GetOnLineGroupMember(g).UserName, wxc.GetOnLineGroupMember(g).NickName);
                    }

                    //dGroups.Add(new WxGroup { NickName = g, });
                }
                dCB.ItemsSource = dGroups;
                dCB.DisplayMemberPath = "Value";
                dCB.SelectedValuePath = "Key";
                //dLV.ItemsSource = dGroups;
            }));
        }
Beispiel #2
0
        public SendMsg MakeContent(WXMsg msg)
        {
            WxContact contact = new WxContact(msg.Uin);
            //需要更新群内成员信息
            var currMember = contact.GetOnLineGroupMember(msg.From);

            contact.Add(msg.From, currMember); //更新群内联系人信息
            SendMsg m = new SendMsg();

            m.context = "云客服提醒:呼呼,貌似有人退群了.....";
            m.type    = 1;
            return(m);
        }
        /// <summary>
        /// 进群欢迎语
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public SendMsg MakeContent(WXMsg msg)
        {
            var       SendMsg       = new SendMsg();
            WxContact contact       = new WxContact(msg.Uin);
            string    groupUserName = msg.From; //群用户名
            var       oldMember     = contact.GetGroupMemberNames(groupUserName);
            //获取当前群内所有成员信息
            var currMember = contact.GetOnLineGroupMember(groupUserName);

            var newMemberList = new List <GroupWxUser>();

            var dic_oldUserName = new Dictionary <string, string>();

            foreach (var old_s in oldMember.MemberUserNames)
            {
                dic_oldUserName.Add(old_s.UserName, old_s.UserName);
            }

            foreach (var s in currMember.MemberUserNames)
            {
                if (!dic_oldUserName.ContainsKey(s.UserName))
                {
                    newMemberList.Add(s);
                }
            }

            string nickName = string.Empty;

            foreach (var m in newMemberList)
            {
                nickName += m.NickName + "、";
            }
            //获取用户信息
            contact.Add(groupUserName, currMember); //更新群内联系人信息

            //获取系统设置的欢迎信息
            var robot = WeChatRobotDal.GetWxRobotByUin(msg.Uin);

            if (robot.Rows.Count == 0)
            {
                return(new SendMsg());
            }

            var welcomeSwitch = int.Parse(robot.Rows[0]["WelcomeSwitch"].ToString());

            var ret = string.Empty;

            switch (welcomeSwitch)
            {
            case (int)EnumContainer.CommonSwichEnum.关闭不发送:
                break;

            case (int)EnumContainer.CommonSwichEnum.自定义语句:
                ret = GetCustomWelcome(robot.Rows[0]["RobotId"].ToString());
                break;

            case (int)EnumContainer.CommonSwichEnum.通用语句:
                ret = "请遵守群规[微笑]";
                break;
            }

            ((Action) delegate()
            {
                //写进群数据库
                var b = WxOperateLogDal.AddInGroupLog(msg.Uin, groupUserName, msg.Msg);
            }).BeginInvoke(null, null);


            if (!string.IsNullOrEmpty(ret))
            {
                ret = string.Format("@{0} {1}", nickName.TrimEnd('、'), ret);
            }
            SendMsg.context = ret;
            SendMsg.type    = 1;
            return(SendMsg);
        }