public void ApplyMatrixEntity(int conferenceID, ConferenceMaxtrixApplyEntity conferenceMaxtrixApplyEntity) { try { //上锁,达到线程互斥作用 lock (objApplyMatrixEntity) { try { //会议名称不为空 if (conferenceID == 0) { return; } ConferenceMatrixEntity conferenceMatrixEntity = this.GetMatrixEntity(conferenceID); if (conferenceMatrixEntity != null) { conferenceMaxtrixApplyEntity.BeforeSeatEntity = conferenceMatrixEntity.SeatEntity; } //实时同步(发送信息给客户端) this.InformClient(conferenceID, conferenceMaxtrixApplyEntity); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } }
public void SetMatrixEntity(int conferenceID, ConferenceMatrixEntity conferenceMatrixEntity) { //上锁,达到线程互斥作用 lock (objSetMatrixEntity) { try { //会议名称不为空 if (conferenceID == 0) { return; } //查看缓存中是否包含该会议名称 if (dicConferenceMatrixEntity.ContainsKey(conferenceID)) { //取出临时矩阵投影人 dicConferenceMatrixEntity[conferenceID] = conferenceMatrixEntity; } else { //若没有,则记录会议并绑定相应的矩阵数据 dicConferenceMatrixEntity.Add(conferenceID, conferenceMatrixEntity); } //实时同步(发送信息给客户端) this.InformClient(conferenceID, conferenceMatrixEntity); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } } }
public ConferenceMatrixEntity GetMatrixEntity(int conferenceID) { ConferenceMatrixEntity conferenceMatrixEntity = null; try { //上锁,达到线程互斥作用 lock (objGetMatrixEntity) { try { //会议名称不为空 if (conferenceID == 0) { return(null); } //查看缓存中是否包含该会议名称 if (dicConferenceMatrixEntity.ContainsKey(conferenceID)) { //取出临时矩阵投影人 conferenceMatrixEntity = dicConferenceMatrixEntity[conferenceID]; SeatEntity seatEntity = conferenceMatrixEntity.SeatEntity; string strIP = seatEntity.SettingIP; if (dicSeatEntity.ContainsKey(conferenceID) && !string.IsNullOrEmpty(strIP)) { List <SeatEntity> seatList = dicSeatEntity[conferenceID].Where(Item => Item.SettingIP.Equals(strIP)).ToList <SeatEntity>(); if (seatList.Count > 0 && seatList[0].SettingIP.Equals(strIP)) { if (Constant.DicMatrixMeetServerSocket.ContainsKey(conferenceID)) { string uri = seatList[0].SharerUri; conferenceMatrixEntity.SharerUri = uri; MeetServerSocket meetSocekt = Constant.DicMatrixMeetServerSocket[conferenceID]; if (meetSocekt != null && meetSocekt.DicClientSocket != null && meetSocekt.DicClientSocket.Count > 0 && !string.IsNullOrEmpty(uri) && meetSocekt.DicClientSocket.ContainsKey(uri)) { SocketModel socketModel = meetSocekt.DicClientSocket[uri]; bool isOnline = Constant.ServerSendData(socketModel.Socket, 10); //判断是否在线 conferenceMatrixEntity.IsOnline = isOnline; } } } } } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } return(conferenceMatrixEntity); }
/// <summary> /// 投影占用 /// </summary> /// <param name="confrenceName"></param> /// <param name="lyncConversationEntity"></param> /// <param name="callBack"></param> public void MatrixSetting(int conferenceID, ConferenceMatrixEntity conferenceMatrixEntity, Action <bool> callBack) { try { //设置事件回调 this.MatrixSync_CallBack = callBack; //投影占用 Client.SetMatrixEntityAsync(conferenceID, conferenceMatrixEntity); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }