/// <summary> /// 更改节点(服务器同步) /// </summary> /// <param name="academicReviewItemTransferEntity">语音信息协议实体</param> public static void UpdateItem(ConferenceAudioItemTransferEntity academicReviewItemTransferEntity) { try { //遍历语音节点 foreach (var item in ConferenceAudioItemList) { //对应相应GUID if (item.ACA_Guid.Equals(academicReviewItemTransferEntity.Guid)) { //更改信息 if (item.Message != academicReviewItemTransferEntity.AudioMessage && !item.IsEditNow) { //语音转文字信息 item.Message = academicReviewItemTransferEntity.AudioMessage; //设置信息 item.AcademicReviewItemTransferEntity.AudioMessage = item.Message; break; } } } } catch (Exception ex) { LogManage.WriteLog(typeof(ConferenceAudio_View), ex); } }
/// <summary> /// 服务器同步删除节点 /// </summary> /// <param name="academicReviewItemTransferEntity">语音信息协议实体</param> public void Delete_Item(ConferenceAudioItemTransferEntity academicReviewItemTransferEntity) { try { ConferenceAudioItem academicReviewItem = null; //记录所有语音研讨的记录清除指定语音节点(递减的方式) for (int i = ConferenceAudio_View.ConferenceAudioItemList.Count - 1; i > -1; i--) { academicReviewItem = ConferenceAudio_View.ConferenceAudioItemList[i]; //协议实体与当前遍历到的实体 if (academicReviewItem.ACA_Guid.Equals(academicReviewItemTransferEntity.Guid)) { //语音控件删除指定项 this.stackDiscussContent.Children.Remove(academicReviewItem); //设置当前协议实体为null ConferenceAudio_View.ConferenceAudioItemList[i].AcademicReviewItemTransferEntity = null; //记录所有语音研讨的记录删除该语音节点 ConferenceAudio_View.ConferenceAudioItemList.Remove(academicReviewItem); break; } } } catch (Exception ex) { LogManage.WriteLog(typeof(ConferenceAudio_View), ex); } }
/// <summary> /// 更改节点(服务器同步) /// </summary> /// <param name="academicReviewItemTransferEntity"></param> public static void UpdateItem(ConferenceAudioItemTransferEntity academicReviewItemTransferEntity) { try { //遍历语音节点 foreach (var item in ConferenceAudioItemList) { //对应相应GUID if (item.ACA_Guid.Equals(academicReviewItemTransferEntity.Guid)) { //更改信息 if (item.Message != academicReviewItemTransferEntity.AudioMessage && !item.IsEditNow) { //语音转文字信息 item.Message = academicReviewItemTransferEntity.AudioMessage; //设置信息 item.AcademicReviewItemTransferEntity.AudioMessage = item.Message; //if(!string.IsNullOrEmpty(academicReviewItemTransferEntity.AudioUrl)&&string.IsNullOrEmpty( academicReviewItemTransferEntity.AudioMessage)) //{ // item.UploadTip = Visibility.Collapsed; //} break; } } } } catch (Exception ex) { LogManage.WriteLog(typeof(ConferenceAudio_View), ex); } }
/// <summary> /// 添加节点 /// </summary> /// <param name="message">消息</param> /// <param name="audioUrl">语音地址</param> /// <param name="audioFileName">语音文件</param> /// <param name="callBack">事件回调</param> public void AddDiscussInformation(string message, string audioUrl, string audioFileName, Action <int> callBack) { try { DateTime dateTime = DateTime.Now; //语音研讨协议节点 ConferenceAudioItemTransferEntity AcademicReviewItemTransferEntityChild = new ConferenceAudioItemTransferEntity() { AddAuthor = IMMCodeEnterEntity.LoginUserName, IMMType = "Audio", AudioMessage = message, MessageSendName = IMMCodeEnterEntity.SelfName, MessageSendTime = dateTime.ToLongTimeString(), MessageSendDate = dateTime.ToLongDateString(), AudioUrl = audioUrl, AudioFileName = audioFileName, PersonalImg = IMMCodeEnterEntity.TreeServiceAddressFront + IMMCodeEnterEntity.FtpServercePersonImgName + IMMCodeEnterEntity.LoginUserName + ".png" }; //向服务器添加一个子节点 ModelManage.ConferenceAudio.Add(IMMCodeEnterEntity.ConferenceName, AcademicReviewItemTransferEntityChild, new Action <bool, int>((result, guid) => { if (result) { callBack(guid); } })); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } }
public void SettingAudioTransferTxt(int conferenceID, ConferenceAudioItemTransferEntity conferenceAudioItemTransferEntity) { //上锁,达到线程互斥作用 lock (objTransfer) { try { //当前会议为null,则不执行下列操作 if (conferenceID == 0) { return; } if (string.IsNullOrEmpty(conferenceAudioItemTransferEntity.AudioMessage)) { //音频文件字节数组 byte[] array = null; //获取webservice路径 string strLocal = this.Server.MapPath("."); conferenceAudioItemTransferEntity.AudioFileName = Path.GetFileName(conferenceAudioItemTransferEntity.AudioUrl); string fileName = strLocal + "\\" + Constant.AudioLocalRootName + "\\" + conferenceAudioItemTransferEntity.AudioFileName; if (File.Exists(fileName)) { //通过文件流将音频文件转为字节数组 using (System.IO.FileStream fileStream = new System.IO.FileStream(fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read, FileShare.Delete)) { array = new byte[fileStream.Length]; //将文件流读出给指定字节数组 fileStream.Read(array, 0, array.Length); } AudioFileType audioFileType = (AudioFileType)Enum.Parse(typeof(AudioFileType), Path.GetExtension(fileName).Replace(".", string.Empty)); //语音转文字(通用方法) string message = AudioTransfer.AudioToText(array, audioFileType); //结束语音识别 if (string.IsNullOrEmpty(message)) { message = "无法识别"; } //操作方式改为更新 conferenceAudioItemTransferEntity.Operation = ConferenceAudioOperationType.UpdateType; //语音文本 conferenceAudioItemTransferEntity.AudioMessage = message; //更新一个节点 this.UpdateOne(conferenceID, conferenceAudioItemTransferEntity); } } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } } }
/// <summary> /// 信息添加辅助 /// </summary> /// <param name="conferenceName"></param> /// <param name="json"></param> /// <returns></returns> public string AddOneByJsonHelper(int conferenceID, string json, string audioUri) { string result = null; List <ConferenceAudioItemTransferEntity> conferenceAudioItemTransferEntityList = JsonToEntity <ConferenceAudioItemTransferEntity>(json); if (conferenceAudioItemTransferEntityList.Count > 0) { ConferenceAudioItemTransferEntity ConferenceAudioItem_TransferEntity = conferenceAudioItemTransferEntityList[0]; try { //当前会议为null,则不执行下列操作 if (conferenceID == 0) { return(result); } //是否包含 if (ConferenceDiscussInitRefleshEntity_dic.ContainsKey(conferenceID)) { //类型设置 ConferenceAudioItem_TransferEntity.Operation = ConferenceAudioOperationType.AddType; //个人头像 ConferenceAudioItem_TransferEntity.PersonalImg = Constant.PersonImgHttp + ConferenceAudioItem_TransferEntity.AddAuthor + ".png"; if (audioUri != null) { //信息语音地址 ConferenceAudioItem_TransferEntity.AudioUrl = audioUri; } //获取相应的语音树 ConferenceAudioInitRefleshEntity conferenceAudioInitRefleshEntity = ConferenceDiscussInitRefleshEntity_dic[conferenceID]; //guid绑定为当前rootcount ConferenceAudioItem_TransferEntity.Guid = conferenceAudioInitRefleshEntity.RootCount; //参数递增 conferenceAudioInitRefleshEntity.RootCount++; //语音节点实体集合添加子节点 conferenceAudioInitRefleshEntity.AcademicReviewItemTransferEntity_ObserList.Add(ConferenceAudioItem_TransferEntity); //实时同步 InformClient(conferenceID, ConferenceAudioItem_TransferEntity); } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } } return(result); }
/// <summary> /// IMM缓存添加(手机应用) /// </summary> /// <param name="conferenceAudioItemTransferEntity"></param> static void MobileIMMTempAdd(string conferenceName, ConferenceAudioItemTransferEntity conferenceAudioItemTransferEntity) { //if (dicConferenceAudioItem_TransferEntity.ContainsKey(conferenceName)) //{ // dicConferenceAudioItem_TransferEntity[conferenceName] = conferenceAudioItemTransferEntity; //} //else //{ // dicConferenceAudioItem_TransferEntity.Add(conferenceName, conferenceAudioItemTransferEntity); //} }
/// <summary> /// 同步语音研讨(收到服务器通知) /// </summary> /// <param name="result"></param> public void Information_Sync(ConferenceAudioItemTransferEntity result) { try { if (result != null) { //节点操作类型 switch (result.Operation) { //添加节点 case ConferenceAudioOperationType.AddType: //添加子项 Add_Item(result); //信息闪烁 WindowExtensions.FlashWindow(MainWindow.mainWindow, 10); //已经处于信息交流页面则不进行闪烁 if (Conference.MainWindow.MainPageInstance.ViewSelectedItemEnum != ConferenceCommon.EnumHelper.ViewSelectedItemEnum.IMM) { //消息闪烁 Conference.MainWindow.MainPageInstance.IMMReceivMessageFlash(); } break; //删除节点 case ConferenceAudioOperationType.DeleteType: //删除子项 Delete_Item(result); break; //更新节点 case ConferenceAudioOperationType.UpdateType: //更新子项 UpdateItem(result); break; case ConferenceAudioOperationType.UploadCompleateType: //音频文件上传完成通知 this.NotifyUploadCompleate(result); break; default: break; } } } catch (Exception ex) { LogManage.WriteLog(typeof(ConferenceAudio_View), ex); } }
/// <summary> /// 创建文件所需字符集 /// </summary> public string BuildHtml(string fileTitle) { string htmlData = string.Empty; try { string title = "<p class=MsoNormal><span style='font-family:宋体;font-size:30px;line-height:200%'>" + fileTitle + "</span></p>"; DateTime dateTime = default(DateTime); StringBuilder builder = new StringBuilder(); foreach (var item in ConferenceAudioItemList) { ConferenceAudioItemTransferEntity tansferItem = item.AcademicReviewItemTransferEntity; DateTime time = Convert.ToDateTime(tansferItem.MessageSendDate); if (time > dateTime) { builder.Append("<p class=MsoNormal><span style='font-family:宋体;font-size:20px;text-align:center;line-height:150%'>"); builder.Append(tansferItem.MessageSendDate); builder.Append("</span></p>"); dateTime = time; } builder.Append("<p class=MsoNormal>"); builder.Append("<span style='font-family:宋体;color:#00B0F0'>"); builder.Append(tansferItem.MessageSendName + "("); builder.Append("</span>"); builder.Append("<span lang=EN-US style='color:#00B0F0'>"); builder.Append(tansferItem.AddAuthor); builder.Append("</span>"); builder.Append("<span style='font-family:宋体;color:#00B0F0'>"); builder.Append("):"); builder.Append("</span>"); builder.Append("<span lang=EN-US style='color:#00B0F0'>"); builder.Append(tansferItem.MessageSendTime); builder.Append("</span></p>"); builder.Append("<p class=MsoNormal style='text-indent:10.5pt;line-height:150%'>"); builder.Append("<span style='font-family:宋体'>"); builder.Append(tansferItem.AudioMessage); builder.Append("</span></p>"); } htmlData = this.htmlPart1 + title + builder.ToString() + this.htmlPart2; } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } return(htmlData); }
/// <summary> /// 添加一个语音节点 /// </summary> /// <param name="conferenceName"></param> /// <param name="callBack"></param> /// <param name="academicReviewItemTransferEntity"></param> public void Add(string conferenceName, ConferenceAudioItemTransferEntity academicReviewItemTransferEntity, Action <bool, int> callBack) { try { //设置回调 AddItemCallBack = callBack; //异步向服务器添加一个语音节点 ConferenceAudio.Client.AddOneAsync(conferenceName, academicReviewItemTransferEntity); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } }
/// <summary> /// 删除语音节点 /// </summary> /// <param name="conferenceName"></param> /// <param name="academicReviewItemTransferEntity"></param> /// <param name="callback"></param> public void Delete(string conferenceName, ConferenceAudioItemTransferEntity academicReviewItemTransferEntity, Action <bool> callback) { try { //设置回调 this.DeleteItemCallBack = callback; //向服务器提交一个删除节点 ConferenceAudio.Client.DeleteOneAsync(conferenceName, academicReviewItemTransferEntity); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } }
public void UploadAudioCompleate(string conferenceName, ConferenceAudioItemTransferEntity academicReviewItemTransferEntity, Action <bool> callBack) { try { this.NotifyAudioFileUploadCompleateCallBack = callBack; ConferenceAudio.Client.NotifyAudioFileUploadCompleateAsync(conferenceName, academicReviewItemTransferEntity); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }
/// <summary> /// 同步语音研讨(收到服务器通知) /// </summary> /// <param name="result">语音协议实体</param> public void Information_Sync(ConferenceAudioItemTransferEntity result) { try { if (result != null) { //节点操作类型 switch (result.Operation) { //添加节点 case ConferenceAudioOperationType.AddType: //添加子项 Add_Item(result); //得到消息提醒 if (this.IMMFalshCallBack != null) { this.IMMFalshCallBack(); } break; //删除节点 case ConferenceAudioOperationType.DeleteType: //删除子项 Delete_Item(result); break; //更新节点 case ConferenceAudioOperationType.UpdateType: //更新子项 UpdateItem(result); break; case ConferenceAudioOperationType.UploadCompleateType: //音频文件上传完成通知 this.NotifyUploadCompleate(result); break; default: break; } } } catch (Exception ex) { LogManage.WriteLog(typeof(ConferenceAudio_View), ex); } }
/// <summary> /// 获取语音子节点语音转文字信息 /// </summary> public void SettingAudioTransfer(string conferenceName, ConferenceAudioItemTransferEntity academicReviewItemTransferEntity, Action <bool> callback) { try { //设置事件回调 this.SettingAudioTransferCallBack = callback; //获取语音子节点语音转文字信息 ConferenceAudio.client.SettingAudioTransferTxtAsync(conferenceName, academicReviewItemTransferEntity); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }
public int AddOne(int conferenceID, ConferenceAudioItemTransferEntity academicReviewItemTransferEntity) { //上锁,达到线程互斥作用 lock (objAdd) { int guid = -1; try { //当前会议为null,则不执行下列操作 if (conferenceID == 0) { return(guid); } //语音集实体 ConferenceAudioInitRefleshEntity audioReflesh = ConferenceDiscussInitRefleshEntity_dic[conferenceID]; //是否包含 if (ConferenceDiscussInitRefleshEntity_dic.ContainsKey(conferenceID)) { //类型设置 academicReviewItemTransferEntity.Operation = ConferenceAudioOperationType.AddType; //获取相应的语音树 ConferenceAudioInitRefleshEntity conferenceAudioInitRefleshEntity = audioReflesh; //guid绑定为当前rootcount academicReviewItemTransferEntity.Guid = conferenceAudioInitRefleshEntity.RootCount; guid = academicReviewItemTransferEntity.Guid; //参数递增 conferenceAudioInitRefleshEntity.RootCount++; //语音节点实体集合添加子节点 conferenceAudioInitRefleshEntity.AcademicReviewItemTransferEntity_ObserList.Add(academicReviewItemTransferEntity); //实时同步 InformClient(conferenceID, academicReviewItemTransferEntity); } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } return(guid); } }
/// <summary> /// 更改语音节点 /// </summary> public void UpdateItem(string conferenceName, ConferenceAudioItemTransferEntity academicReviewItemTransferEntity, Action <bool> callback) { try { //设置回调 this.UpdateItemCallBack = callback; //更新语音子节点 ConferenceAudio.client.UpdateOneAsync(conferenceName, academicReviewItemTransferEntity); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }
/// <summary> /// 添加节点 /// </summary> /// <param name="message"></param> /// <param name="audioUrl"></param> public void AddDiscussInformation(string message) { try { //语音研讨协议节点 ConferenceAudioItemTransferEntity AcademicReviewItemTransferEntityChild = new ConferenceAudioItemTransferEntity() { AddAuthor = Constant.LoginUserName, IMMType = "Text", AudioMessage = message, MessageSendName = Constant.SelfName, MessageSendTime = DateTime.Now.ToLongTimeString(), AudioUrl = string.Empty, PersonalImg = Constant.TreeServiceAddressFront + Constant.FtpServercePersonImgName + Constant.LoginUserName + ".png" }; //向服务器添加一个子节点 ModelManage.ConferenceAudio.Add(Constant.ConferenceName, AcademicReviewItemTransferEntityChild, new Action <bool, int>((result, guid) => { })); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } }
public void UpdateOne(int conferenceID, ConferenceAudioItemTransferEntity academicReviewItemTransferEntity) { //上锁,达到线程互斥作用 lock (objUpdate) { try { //会议名称为null则不执行以下操作 if (conferenceID == 0) { return; } //语音集实体 ConferenceAudioInitRefleshEntity audioReflesh = ConferenceDiscussInitRefleshEntity_dic[conferenceID]; //语音节点集合 List <ConferenceAudioItemTransferEntity> audioList = audioReflesh.AcademicReviewItemTransferEntity_ObserList; //找到对应的节点进行更改 for (int i = 0; i < audioList.Count; i++) { //获取遍历中的一个节点 var item = audioList[i]; if (item.Equals(academicReviewItemTransferEntity)) { //操作类型更改为更新 academicReviewItemTransferEntity.Operation = ConferenceAudioOperationType.UpdateType; //设置文本信息(对应的节点) audioList[i] = academicReviewItemTransferEntity; //实时同步 InformClient(conferenceID, academicReviewItemTransferEntity); break; } } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } } }
public void NotifyAudioFileUploadCompleate(string conferenceName, ConferenceAudioItemTransferEntity academicReviewItemTransferEntity) { lock (objUploadCompleate) { try { //会议名称为null则不执行以下操作 if (string.IsNullOrEmpty(conferenceName)) { return; } //语音集实体 ConferenceAudioInitRefleshEntity audioReflesh = ConferenceDiscussInitRefleshEntity_dic[conferenceName]; //语音节点集合 List <ConferenceAudioItemTransferEntity> audioList = audioReflesh.AcademicReviewItemTransferEntity_ObserList; //找到对应的节点进行更改 for (int i = 0; i < audioList.Count; i++) { //获取遍历中的一个节点 var item = audioList[i]; if (item.Equals(academicReviewItemTransferEntity)) { //操作类型更改为提交完成 academicReviewItemTransferEntity.Operation = ConferenceAudioOperationType.UploadCompleateType; ////设置文本信息(对应的节点) //audioList[i] = academicReviewItemTransferEntity; //实时同步 InformClient(conferenceName, academicReviewItemTransferEntity); break; } } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } } }
/// <summary> /// 实时同步 /// </summary> /// <param name="conferenceName">会议名称</param> public void InformClient(string conferenceName, ConferenceAudioItemTransferEntity conferenceAudioItemTransferEntity) { try { //会议名称不为空 if (!string.IsNullOrEmpty(conferenceName)) { //生成数据包 PackageBase pack = new PackageBase() { ConferenceClientAcceptType = ConferenceWebCommon.Common.ConferenceClientAcceptType.ConferenceAudio, ConferenceAudioItemTransferEntity = conferenceAudioItemTransferEntity }; //会议通讯节点信息发送管理中心 Constant.SendClientCenterManage(Constant.DicAudioMeetServerSocket, conferenceName, pack); } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } }
/// <summary> /// 语音映射实体转换 /// </summary> public static ConferenceAudioItemTransferEntity AudioTransferEntityChanged(ConferenceWebCommon.EntityHelper.ConferenceDiscuss.ConferenceAudioItemTransferEntity conferenceAudioItemTransferEntity) { //返回的语音映射实体(weservicve自引用) ConferenceAudioItemTransferEntity conferenceAudioItemTransferEntityReturn = new ConferenceAudioItemTransferEntity(); try { //GUID绑定 conferenceAudioItemTransferEntityReturn.Guid = conferenceAudioItemTransferEntity.Guid; //消息绑定 conferenceAudioItemTransferEntityReturn.AudioMessage = conferenceAudioItemTransferEntity.AudioMessage; //子节点添加人 conferenceAudioItemTransferEntityReturn.AddAuthor = conferenceAudioItemTransferEntity.AddAuthor; //发送时间 conferenceAudioItemTransferEntityReturn.MessageSendTime = conferenceAudioItemTransferEntity.MessageSendTime; //发送人 conferenceAudioItemTransferEntityReturn.MessageSendName = conferenceAudioItemTransferEntity.MessageSendName; //是否为自己所发送 //conferenceAudioItemTransferEntityReturn.IsSelfSend = conferenceAudioItemTransferEntityReturn.IsSelfSend; //音频地址绑定 conferenceAudioItemTransferEntityReturn.IMMType = conferenceAudioItemTransferEntity.IMMType; //音频地址绑定 conferenceAudioItemTransferEntityReturn.AudioUrl = conferenceAudioItemTransferEntity.AudioUrl; //音频文件名称 conferenceAudioItemTransferEntityReturn.AudioFileName = conferenceAudioItemTransferEntity.AudioFileName; //个人头像 conferenceAudioItemTransferEntityReturn.PersonalImg = conferenceAudioItemTransferEntity.PersonalImg; //类型绑定 conferenceAudioItemTransferEntityReturn.Operation = (ConferenceAudioOperationType)((int)conferenceAudioItemTransferEntity.Operation); } catch (Exception ex) { LogManage.WriteLog(typeof(EntityTransfer), ex); } finally { } return(conferenceAudioItemTransferEntityReturn); }
/// <summary> /// 实时同步 /// </summary> /// <param name="conferenceName">会议名称</param> public void InformClient(int conferenceID, ConferenceAudioItemTransferEntity conferenceAudioItemTransferEntity) { try { //会议名称不为空 if (conferenceID != 0) { //生成数据包 PackageBase pack = new PackageBase() { ConferenceClientAcceptType = ConferenceClientAcceptType.ConferenceAudio, ConferenceAudioItemTransferEntity = conferenceAudioItemTransferEntity }; //会议通讯节点信息发送管理中心 Constant.SendClientCenterManage(Constant.DicAudioMeetServerSocket, conferenceID, pack); } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } }
/// <summary> /// 音频文件上传完成通知 /// </summary> /// <param name="academicReviewItemTransferEntity"></param> public void NotifyUploadCompleate(ConferenceAudioItemTransferEntity academicReviewItemTransferEntity) { try { //遍历语音节点 foreach (var item in ConferenceAudioItemList) { //对应相应GUID if (item.ACA_Guid.Equals(academicReviewItemTransferEntity.Guid)) { //控件调整处理中心 ConferenceAudio_View.ControlChangeDealWidthCenter(item, true); break; } } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }
public void DeleteOne(int conferenceID, ConferenceAudioItemTransferEntity academicReviewItemTransferEntity) { //上锁,达到线程互斥作用 lock (objDelete) { try { //当前会议为null,则不执行下列操作 if (conferenceID == 0) { return; } //语音集实体 ConferenceAudioInitRefleshEntity audioReflesh = ConferenceDiscussInitRefleshEntity_dic[conferenceID]; //语音节点集合 List <ConferenceAudioItemTransferEntity> audioList = audioReflesh.AcademicReviewItemTransferEntity_ObserList; //判断是否包含该节点,从而进行删除操作 if (audioList.Contains(academicReviewItemTransferEntity)) { //操作类型改为删除 academicReviewItemTransferEntity.Operation = ConferenceAudioOperationType.DeleteType; //删除该子节点 audioList.Remove(academicReviewItemTransferEntity); //实时同步 InformClient(conferenceID, academicReviewItemTransferEntity); } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } } }
/// <summary> /// 服务器同步添加节点 /// </summary> /// <param name="academicReviewItemTransferEntity">语音协议实体</param> public void Add_Item(ConferenceAudioItemTransferEntity academicReviewItemTransferEntity) { try { lock (ItemAddObject) { if (!this.retunList.Contains(academicReviewItemTransferEntity.Guid)) { //添加索引 this.retunList.Add(academicReviewItemTransferEntity.Guid); //本地语音节点 ConferenceAudioItem academicReviewItem = null; //控件加载(关联)Header = academicReviewItemTransferEntity.MessageHeader, academicReviewItem = new ConferenceAudioItem() { ACA_Guid = academicReviewItemTransferEntity.Guid, Message = academicReviewItemTransferEntity.AudioMessage, AudioUrl = academicReviewItemTransferEntity.AudioUrl, PersonalImg = academicReviewItemTransferEntity.PersonalImg, PersonName = academicReviewItemTransferEntity.MessageSendName }; //如果是自己发的则在左侧(验证该子节点是否为自己所创建) if (academicReviewItemTransferEntity.AddAuthor.Equals(IMMCodeEnterEntity.LoginUserName)) { //设置为左侧 academicReviewItem.HorizontalAlignment = System.Windows.HorizontalAlignment.Right; //若为自己所创建则设置为可编辑 academicReviewItem.txtAudio.IsReadOnly = false; //整体布局更改 academicReviewItem.LayoutChange(); } else { //设置为右侧 academicReviewItem.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; } //协议实体填充 academicReviewItem.AcademicReviewItemTransferEntity = academicReviewItemTransferEntity; //具体语音文本信息 academicReviewItem.AcademicReviewItemTransferEntity.AudioMessage = academicReviewItemTransferEntity.AudioMessage; //控件调整处理中心 ConferenceAudio_View.ControlChangeDealWidthCenter(academicReviewItem, false); //语音控件添加子项 this.stackDiscussContent.Children.Add(academicReviewItem); //滚动到末尾(判断是否可以执行该操作,比如正在翻页,不允许强制进行) if (ConferenceAudio_View.CanScroll) { this.AudioTextScrollView.ScrollToEnd(); } #region 注册事件 //语音讨论子节点播放事件 academicReviewItem.ItemPlayClick = academicReviewItem_ItemPlayClick; //语音讨论子节点删除事件 academicReviewItem.ItemRemoveClick = academicReviewItem_ItemRemoveClick; #endregion //根记录进行自增1(其实就是GUID唯一标识符) ConferenceAudio_View.RootCount++; //记录所有语音研讨的记录添加语音节点 ConferenceAudioItemList.Add(academicReviewItem); } } } catch (Exception ex) { LogManage.WriteLog(typeof(ConferenceAudio_View), ex); } }