public ConferenceTreeInitRefleshEntity GetAll(string conferenceName)
        {
            //上锁,达到线程互斥作用
            //lock (objGetAll)
            //{
            ConferenceTreeInitRefleshEntity initRefleshEntity = null;

            try
            {
                //会议正在进行中
                if (!string.IsNullOrEmpty(conferenceName))
                {
                    //包含该会议
                    if (ConferenceTreeInitRefleshEntity_dic.ContainsKey(conferenceName))
                    {
                        //获取会议的树信息
                        initRefleshEntity = ConferenceTreeInitRefleshEntity_dic[conferenceName];
                    }
                    else
                    {
                        //生成会议树的源数据
                        initRefleshEntity = new ConferenceTreeInitRefleshEntity();
                        //字典添加树视图的源数据
                        ConferenceTreeInitRefleshEntity_dic.Add(conferenceName, initRefleshEntity);
                    }
                }
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            return(initRefleshEntity);
            //}
        }
        public void SetAll(string conferenceName, ConferenceTreeInitRefleshEntity conferenceTreeInitRefleshEntity)
        {
            //上锁,达到线程互斥作用
            lock (objSetAll)
            {
                try
                {
                    //知识树清除
                    if (ConferenceTreeInitRefleshEntity_dic.ContainsKey(conferenceName))
                    {
                        //移除当前会议的所有节点
                        ConferenceTreeInitRefleshEntity_dic.Remove(conferenceName);
                        //刷新
                        ConferenceTreeInitRefleshEntity_dic.Add(conferenceName, conferenceTreeInitRefleshEntity);
                        //操作类型为刷新
                        conferenceTreeInitRefleshEntity.RootParent_AcademicReviewItemTransferEntity.Operation = ConferenceTreeOperationType.RefleshAllType;

                        //实时同步(刷新所有)
                        InformClient(conferenceName, new ConferenceTreeItemTransferEntity()
                        {
                            Operation = ConferenceTreeOperationType.RefleshAllType
                        });
                    }
                }
                catch (Exception ex)
                {
                    LogManage.WriteLog(this.GetType(), ex);
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 重新构造服务器中的研讨树
 /// </summary>
 /// <param name="conferenceName"></param>
 /// <param name="conferenceTreeInitRefleshEntity"></param>
 /// <param name="callback"></param>
 public void SetAll(int conferenceID, ConferenceTreeInitRefleshEntity conferenceTreeInitRefleshEntity, Action <bool> callback)
 {
     try
     {
         this.SetAll_CallBack = callback;
         Client.SetAllAsync(conferenceID, conferenceTreeInitRefleshEntity);
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
 }
        public void DeleteOne(string conferenceName, ConferenceTreeItemTransferEntity academicReviewItemTransferEntity)
        {
            //上锁,达到线程互斥作用
            lock (objDeleteOne)
            {
                try
                {
                    //会议名称不能为空
                    if (string.IsNullOrEmpty(conferenceName))
                    {
                        return;
                    }

                    //相关会议的知识树
                    ConferenceTreeInitRefleshEntity treeReflesh = ConferenceTreeInitRefleshEntity_dic[conferenceName];
                    //知识树节点集合
                    List <ConferenceTreeItemTransferEntity> treeList = treeReflesh.AcademicReviewItemTransferEntity_ObserList;
                    //操作类型改为删除
                    academicReviewItemTransferEntity.Operation = ConferenceTreeOperationType.DeleteType;
                    //子节点
                    if (treeList.Contains(academicReviewItemTransferEntity))
                    {
                        //删除节点的子节点
                        for (int i = treeList.Count - 1; i > -1; i--)
                        {
                            if (treeList[i].ParentGuid == academicReviewItemTransferEntity.Guid)
                            {
                                treeList.Remove(treeList[i]);
                            }
                        }
                        treeList.Remove(academicReviewItemTransferEntity);
                        //实时同步
                        InformClient(conferenceName, academicReviewItemTransferEntity);
                    }
                    //根节点
                    else if (academicReviewItemTransferEntity.Guid == 0)
                    {
                        //删除所有子节点
                        treeList.Clear();
                        //实时同步
                        InformClient(conferenceName, academicReviewItemTransferEntity);
                    }
                }
                catch (Exception ex)
                {
                    LogManage.WriteLog(this.GetType(), ex);
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 导入xml文件(知识树)
        /// </summary>
        public void XmlImport()
        {
            try
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.Filter = "txt files(*.xml)|*.xml|txt files(*.txt)|*.txt|All files(*.*)|*.*";
                if (openFileDialog.ShowDialog() == true)
                {
                    //声明序列化对象实例serializer
                    XmlSerializer serializer = new XmlSerializer(typeof(ConferenceTreeInitRefleshEntity));

                    //生成文件到指定路径
                    using (FileStream ms = new FileStream(openFileDialog.FileName, FileMode.Open, FileAccess.Read))
                    {
                        //反序列化获取协议实体
                        var result = serializer.Deserialize(ms);
                        if (result is ConferenceTreeInitRefleshEntity)
                        {
                            //反序列化,并将反序列化结果值赋给变量i
                            ConferenceTreeInitRefleshEntity conferenceTreeInitRefleshEntity = result as ConferenceTreeInitRefleshEntity;
                            //协议实体参会人清空
                            conferenceTreeInitRefleshEntity.RootParent_AcademicReviewItemTransferEntity.ParticipantList.Clear();
                            //协议实体参会人重新添加为当前会议的参会人
                            conferenceTreeInitRefleshEntity.RootParent_AcademicReviewItemTransferEntity.ParticipantList.AddRange(TreeCodeEnterEntity.ParticipantList);
                            //清除协议实体操作人
                            conferenceTreeInitRefleshEntity.RootParent_AcademicReviewItemTransferEntity.Operationer = string.Empty;
                            //重新构造服务器中的研讨树
                            ModelManage.ConferenceTree.SetAll(TreeCodeEnterEntity.ConferenceName, conferenceTreeInitRefleshEntity, new Action <bool>((error2) =>
                            {
                            }));
                        }
                        else
                        {
                            MessageBox.Show("文件异常", "操作提示", MessageBoxButton.OK, MessageBoxImage.Information);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
        public void AddOne(string conferenceName, ConferenceTreeItemTransferEntity academicReviewItemTransferEntity)
        {
            //上锁,达到线程互斥作用
            lock (objAddOne)
            {
                try
                {
                    if (string.IsNullOrEmpty(conferenceName))
                    {
                        return;
                    }

                    //相关会议的知识树
                    ConferenceTreeInitRefleshEntity treeReflesh = ConferenceTreeInitRefleshEntity_dic[conferenceName];
                    //知识树节点集合
                    List <ConferenceTreeItemTransferEntity> treeList = treeReflesh.AcademicReviewItemTransferEntity_ObserList;

                    //知识树添加节点(做判断)
                    if (!treeList.Contains(academicReviewItemTransferEntity))
                    {
                        //操作类型改为添加
                        academicReviewItemTransferEntity.Operation = ConferenceTreeOperationType.AddType;
                        //知识树添加节点
                        treeList.Add(academicReviewItemTransferEntity);
                        //guid绑定为当前rootcount
                        academicReviewItemTransferEntity.Guid = treeReflesh.RootCount;
                        //进阶
                        treeReflesh.RootCount++;
                        //通知客户端
                        InformClient(conferenceName, academicReviewItemTransferEntity);
                    }
                }
                catch (Exception ex)
                {
                    LogManage.WriteLog(this.GetType(), ex);
                }
            }
        }
        public void Instead(string conferenceName, int beforeItemGuid, int nowItemGuid)
        {
            lock (objInstead)
            {
                try
                {
                    //会议名称为null则不执行
                    if (string.IsNullOrEmpty(conferenceName))
                    {
                        return;
                    }

                    //相关会议的知识树
                    ConferenceTreeInitRefleshEntity treeReflesh = ConferenceTreeInitRefleshEntity_dic[conferenceName];
                    //知识树节点集合
                    List <ConferenceTreeItemTransferEntity> treeList = treeReflesh.AcademicReviewItemTransferEntity_ObserList;
                    //遍历所有节点
                    for (int i = 0; i < treeList.Count; i++)
                    {
                        //获取遍历过程中的子节点
                        var item = treeList[i];
                        //找到需要更新的子节点
                        if (item.Guid.Equals(beforeItemGuid))
                        {
                            item.ParentGuid = nowItemGuid;
                            this.InformClient(conferenceName, beforeItemGuid, nowItemGuid);
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogManage.WriteLog(this.GetType(), ex);
                }
            }
        }
        /// <summary>
        /// 刷新知识树
        /// </summary>
        /// <param name="result"></param>
        void Reflesh(ConferenceTreeInitRefleshEntity result)
        {
            try
            {
                //根记录同步
                ConferenceTreeItem.RootCount = result.RootCount;

                //rootParent(只有根节点是没有的,所有可以判断该节点为根节点)
                if (result != null && result.RootParent_AcademicReviewItemTransferEntity != null)
                {
                    //绑定根节点的协议实体
                    this.AcademicReviewItemTransferEntity = result.RootParent_AcademicReviewItemTransferEntity;
                    //设置根节点的标题
                    this.ACA_Tittle = this.AcademicReviewItemTransferEntity.Title;
                    //设置根节点的评论
                    this.ACA_Comment = this.AcademicReviewItemTransferEntity.Comment;
                    //有备注内容
                    if (!string.IsNullOrEmpty(this.AcademicReviewItemTransferEntity.Comment))
                    {
                        //显示备注弹出按钮
                        this.CommentCommandVisibility = System.Windows.Visibility.Visible;
                    }
                    //有附件列表
                    if (this.AcademicReviewItemTransferEntity.LinkList != null && this.AcademicReviewItemTransferEntity.LinkList.Count > 0)
                    {
                        //显示附件列表弹出按钮
                        this.LinkCommandVisibility = System.Windows.Visibility.Visible;
                    }

                    foreach (var link in AcademicReviewItemTransferEntity.LinkList)
                    {
                        string fileName = System.IO.Path.GetFileName(link);
                        this.LinkListItemAdd(fileName, link);
                    }
                }

                //根节点的衍生子节点
                if (result.AcademicReviewItemTransferEntity_ObserList != null && result.AcademicReviewItemTransferEntity_ObserList.Count() > 0)
                {
                    //进行后续的关联
                    for (int i = 0; i < ConferenceTreeItem.AcademicReviewItemList.Count; i++)
                    {
                        //记录所有知识树的记录
                        ConferenceTreeItem entityItem = ConferenceTreeItem.AcademicReviewItemList[i];
                        foreach (var transferItem in result.AcademicReviewItemTransferEntity_ObserList)
                        {
                            //映射集合GUID
                            if (!ConferenceTreeItem.retunList.Contains(transferItem.Guid))
                            {
                                //添加GUID
                                ConferenceTreeItem.retunList.Add(transferItem.Guid);
                            }
                            //父节点加载子节点
                            if (transferItem.ParentGuid.Equals(entityItem.ACA_Guid))
                            {
                                //生成子节点
                                ConferenceTreeItem academicReviewItem = new ConferenceTreeItem(false)
                                {
                                    ACA_Parent = entityItem, ParentGuid = entityItem.ACA_Guid, ACA_Guid = transferItem.Guid
                                };

                                //节点标题
                                academicReviewItem.ACA_Tittle = transferItem.Title;

                                if (!string.IsNullOrEmpty(transferItem.Comment))
                                {
                                    academicReviewItem.CommentCommandVisibility = System.Windows.Visibility.Visible;
                                }
                                if (transferItem.LinkList != null && transferItem.LinkList.Count > 0)
                                {
                                    academicReviewItem.LinkCommandVisibility = System.Windows.Visibility.Visible;
                                }

                                foreach (var link in transferItem.LinkList)
                                {
                                    string fileName = System.IO.Path.GetFileName(link);
                                    academicReviewItem.LinkListItemAdd(fileName, link);
                                }

                                //评论
                                academicReviewItem.ACA_Comment = transferItem.Comment;

                                //简介
                                entityItem.StackPanel.Children.Add(academicReviewItem);
                                //父节点子节点集合添加该子项
                                entityItem.ACA_ChildList.Add(academicReviewItem);
                                //子节点协议实体绑定
                                academicReviewItem.AcademicReviewItemTransferEntity = transferItem;
                                //记录所有知识树的记录添加子节点
                                ConferenceTreeItem.AcademicReviewItemList.Add(academicReviewItem);
                            }
                        }
                    }
                }
                ConferenceTreeView.ExpanderMethod();
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(typeof(ConferenceTreeItem), ex);
            }
        }
        public void LinkAdd(string conferenceName, ConferenceTreeItemTransferEntity academicReviewItemTransferEntity)
        {
            //上锁,达到线程互斥作用
            lock (objLink)
            {
                try
                {
                    //会议名称为null则不执行
                    if (string.IsNullOrEmpty(conferenceName))
                    {
                        return;
                    }

                    //相关会议的知识树
                    ConferenceTreeInitRefleshEntity treeReflesh = ConferenceTreeInitRefleshEntity_dic[conferenceName];
                    //知识树节点集合
                    List <ConferenceTreeItemTransferEntity> treeList = treeReflesh.AcademicReviewItemTransferEntity_ObserList;
                    //根节点
                    ConferenceTreeItemTransferEntity rootTree = treeReflesh.RootParent_AcademicReviewItemTransferEntity;

                    //操作类型设置为更新
                    academicReviewItemTransferEntity.Operation = ConferenceTreeOperationType.LinkAdd;

                    //GUID为0,证明为根节点
                    if (academicReviewItemTransferEntity.Guid == 0)
                    {
                        //超链接
                        rootTree.LinkList = academicReviewItemTransferEntity.LinkList;
                        //设置根节点的操作人
                        rootTree.Operationer = academicReviewItemTransferEntity.Operationer;
                        //实时同步
                        InformClient(conferenceName, academicReviewItemTransferEntity);
                    }
                    else
                    {
                        //遍历所有节点
                        for (int i = 0; i < treeList.Count; i++)
                        {
                            //获取遍历过程中的子节点
                            var item = treeList[i];
                            //找到需要更新的子节点
                            if (item.Equals(academicReviewItemTransferEntity))
                            {
                                //超链接
                                treeList[i].LinkList = academicReviewItemTransferEntity.LinkList;
                                //设置子节点的操作人
                                treeList[i].Operationer = academicReviewItemTransferEntity.Operationer;

                                //实时同步
                                InformClient(conferenceName, academicReviewItemTransferEntity);
                                break;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogManage.WriteLog(this.GetType(), ex);
                }
            }
        }
        public void UpdateComment(int conferenceID, ConferenceTreeItemTransferEntity academicReviewItemTransferEntity)
        {
            //上锁,达到线程互斥作用
            lock (objUpdateOne)
            {
                try
                {
                    //会议名称不为空
                    if (conferenceID == 0)
                    {
                        return;
                    }

                    //相关会议的知识树
                    ConferenceTreeInitRefleshEntity treeReflesh = ConferenceTreeInitRefleshEntity_dic[conferenceID];
                    //知识树节点集合
                    List <ConferenceTreeItemTransferEntity> treeList = treeReflesh.AcademicReviewItemTransferEntity_ObserList;
                    //根节点
                    ConferenceTreeItemTransferEntity rootTree = treeReflesh.RootParent_AcademicReviewItemTransferEntity;

                    //操作类型设置为更新
                    academicReviewItemTransferEntity.Operation = ConferenceTreeOperationType.UpdateComment;

                    //GUID为0,证明为根节点
                    if (academicReviewItemTransferEntity.Guid == 0)
                    {
                        //设置根节点的论点
                        rootTree.Comment = academicReviewItemTransferEntity.Comment;

                        //设置根节点的操作人
                        rootTree.Operationer = academicReviewItemTransferEntity.Operationer;
                        //实时同步
                        InformClient(conferenceID, academicReviewItemTransferEntity);
                    }
                    else
                    {
                        //遍历所有节点
                        for (int i = 0; i < treeList.Count; i++)
                        {
                            //获取遍历过程中的子节点
                            var item = treeList[i];
                            //找到需要更新的子节点
                            if (item.Equals(academicReviewItemTransferEntity))
                            {
                                //设置子节点的论点
                                treeList[i].Comment = academicReviewItemTransferEntity.Comment;

                                //设置子节点的操作人
                                treeList[i].Operationer = academicReviewItemTransferEntity.Operationer;

                                //实时同步
                                InformClient(conferenceID, academicReviewItemTransferEntity);
                                break;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogManage.WriteLog(this.GetType(), ex);
                }
            }
        }