Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 /// <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
     {
     }
 }