Пример #1
0
        /// <summary>
        /// 退出讨论组时调用
        /// </summary>
        /// <param name="viewModel"></param>
        /// <param name="args"></param>
        private void DropOutGroup(object viewModel, EventArgs args)
        {
            GroupInfoViewModel vm = viewModel as GroupInfoViewModel;

            if (vm == null)
            {
                return;
            }
            GroupIds.Remove(vm.GroupInfo.groupId);
            GroupInfoList.Remove(vm);
            GroupInfos.Remove(vm.GroupInfo);
            if (ManageGroupInfoList.Contains(vm))
            {
                ManageGroupInfoList.Remove(vm);
            }
            if (JoinGroupInfoList.Contains(vm))
            {
                JoinGroupInfoList.Remove(vm);
            }
            ManageGroupCount = ManageGroupInfoList.Count;
            JoinGroupCount   = JoinGroupInfoList.Count;
            if (ManageGroupCount == 0)
            {
                IsManageGroup = false;
            }
            if (JoinGroupCount == 0)
            {
                IsJoinGroup = false;
            }
            List <string> topics = new List <string>();

            topics.Add(vm.GroupInfo.groupId);
        }
Пример #2
0
 /// <summary>
 /// 被移出讨论组时调用
 /// </summary>
 /// <param name="groupId"></param>
 public void DropOutGroup(string groupId)
 {
     AsyncHandler.AsyncCall(System.Windows.Application.Current.Dispatcher, () =>
     {
         GroupInfoViewModel vm = GroupInfoList.FirstOrDefault(c => c.GroupInfo.groupId == groupId);
         if (vm == null)
         {
             return;
         }
         GroupIds.Remove(vm.GroupInfo.groupId);
         //GroupInfoList.Remove(vm);
         GroupInfoList.Remove(vm);
         GroupInfos.Remove(vm.GroupInfo);
         if (ManageGroupInfoList.Contains(vm))
         {
             ManageGroupInfoList.Remove(vm);
         }
         if (JoinGroupInfoList.Contains(vm))
         {
             JoinGroupInfoList.Remove(vm);
         }
         ManageGroupCount = ManageGroupInfoList.Count;
         JoinGroupCount   = JoinGroupInfoList.Count;
         if (ManageGroupCount == 0)
         {
             IsManageGroup = false;
         }
         if (JoinGroupCount == 0)
         {
             IsJoinGroup = false;
         }
         List <string> topics = new List <string>();
         topics.Add(vm.GroupInfo.groupId);
     });
 }
Пример #3
0
        /// <summary>
        /// 讨论组成员信息修改后刷新列表
        /// </summary>
        /// <param name="vm"></param>
        private void GroupInfoListUpdate(GroupInfoViewModel vm)
        {
            if (vm.Members == null)
            {
                return;
            }
            var tempUser = vm.Members.Find(c => c.userId == AntSdkService.AntSdkLoginOutput.userId &&
                                           (c.roleLevel == (int)GlobalVariable.GroupRoleLevel.GroupOwner || c.roleLevel == (int)GlobalVariable.GroupRoleLevel.Admin));

            if (tempUser != null)
            {
                if (JoinGroupInfoList.Contains(vm))
                {
                    JoinGroupInfoList.Remove(vm);
                }
                if (!ManageGroupInfoList.Contains(vm))
                {
                    vm.GroupClassify         = 1;
                    vm.DeleteGroupVisibility = Visibility.Visible;
                    ManageGroupInfoList.Insert(0, vm);
                }
            }
            else
            {
                if (ManageGroupInfoList.Contains(vm))
                {
                    ManageGroupInfoList.Remove(vm);
                }
                if (!JoinGroupInfoList.Contains(vm))
                {
                    vm.GroupClassify         = 2;
                    vm.DeleteGroupVisibility = Visibility.Collapsed;
                    JoinGroupInfoList.Insert(0, vm);
                }
            }
            ManageGroupCount = ManageGroupInfoList.Count;
            JoinGroupCount   = JoinGroupInfoList.Count;
            IsManageGroup    = ManageGroupCount != 0;
            IsJoinGroup      = JoinGroupCount != 0;
        }
Пример #4
0
        /// <summary>
        /// 新增群组model组装
        /// </summary>
        /// <param name="newGroup"></param>
        /// <returns></returns>
        private GroupInfoViewModel AddGroupInfoModel(AntSdkGroupInfo newGroup)
        {
            //if (GroupInfoList.FirstOrDefault(c => c.GroupInfo.groupId == group.groupId) != null) return;
            if (GroupIds.Contains(newGroup.groupId))
            {
                var tempGroupInfoVm = GroupInfoList.FirstOrDefault(c => c.GroupInfo.groupId == newGroup.groupId);
                if (tempGroupInfoVm != null)
                {
                    if (tempGroupInfoVm.GroupPicture != newGroup.groupPicture)
                    {
                        tempGroupInfoVm.GroupPicture = newGroup.groupPicture;
                    }
                    var classify = newGroup.groupOwnerId == AntSdkService.AntSdkCurrentUserInfo.userId ||
                                   (newGroup.managerIds != null && newGroup.managerIds.Contains(AntSdkService.AntSdkCurrentUserInfo.userId)) ? 1 : 2;
                    if (tempGroupInfoVm.GroupClassify != classify)
                    {
                        tempGroupInfoVm.GroupClassify = classify;
                        if (ManageGroupInfoList.Contains(tempGroupInfoVm))
                        {
                            ManageGroupInfoList.Remove(tempGroupInfoVm);
                        }
                        if (JoinGroupInfoList.Contains(tempGroupInfoVm))
                        {
                            JoinGroupInfoList.Remove(tempGroupInfoVm);
                        }
                        if (tempGroupInfoVm.GroupClassify == 1)
                        {
                            ManageGroupInfoList.Insert(0, tempGroupInfoVm);
                        }
                        else
                        {
                            JoinGroupInfoList.Insert(0, tempGroupInfoVm);
                        }
                        ManageGroupCount = ManageGroupInfoList.Count;
                        JoinGroupCount   = JoinGroupInfoList.Count;
                    }
                }
                //tempGroupInfoVm = groupInfoVM;
                return(tempGroupInfoVm);
            }
            GroupInfoViewModel groupInfoVM = new GroupInfoViewModel(newGroup);

            if (GroupInfos == null)
            {
                GroupInfos = new List <AntSdkGroupInfo>();
            }
            GroupInfos.Add(newGroup);
            GroupIds.Add(newGroup.groupId);
            GroupInfoList.Add(groupInfoVM);
            if (groupInfoVM.GroupClassify == 1)
            {
                ManageGroupInfoList.Insert(0, groupInfoVM);
            }
            else
            {
                JoinGroupInfoList.Insert(0, groupInfoVM);
            }
            ManageGroupCount = ManageGroupInfoList.Count;
            JoinGroupCount   = JoinGroupInfoList.Count;
            if (ManageGroupCount > 0)
            {
                IsManageGroup = true;
            }
            if (JoinGroupCount > 0)
            {
                IsJoinGroup = true;
            }
            //if (GroupInfoList != null && GroupInfoList.Any())
            //{
            //    CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(GroupInfoList);
            //    if (view != null)
            //    {
            //        view.GroupDescriptions.Clear();
            //        PropertyGroupDescription groupDescription = new PropertyGroupDescription("GroupClassify");
            //        view.GroupDescriptions.Add(groupDescription);
            //    }
            //}
            List <string> topics = new List <string>();

            topics.Add(newGroup.groupId);
            return(groupInfoVM);
        }