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); } } }
/// <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); } } }
/// <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); } } }