/// <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);
        }
Esempio n. 10
0
 /// <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);
     }
 }
Esempio n. 11
0
 /// <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);
     }
 }
Esempio n. 12
0
 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
     {
     }
 }
Esempio n. 13
0
        /// <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);
            }
        }
Esempio n. 14
0
 /// <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);
            }
        }
Esempio n. 16
0
 /// <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);
            }
        }
Esempio n. 21
0
        /// <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);
            }
        }