Пример #1
0
 /// <summary>
 /// 图例点击
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void ConferenceRoomItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     try
     {
         if (e.ClickCount == 2 && conferenceInformationEntityPC != null)
         {
             if (conferenceInformationEntityPC.BeginTime < DateTime.Now.AddMinutes(-30))
             {
                 ConferenceRoom_View.conferenceRoom_View.RoomCardInit(this, conferenceInformationEntityPC);
             }
             else
             {
                 this.gridTip.Visibility = System.Windows.Visibility.Visible;
                 TimerJob.StartRun(new Action(() =>
                 {
                     this.gridTip.Visibility = System.Windows.Visibility.Collapsed;
                 }), 1000);
             }
         }
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
 }
Пример #2
0
        /// <summary>
        /// 点击选择自己填充静态实例
        /// </summary>
        public void ConversationResourceItemPoint()
        {
            try
            {
                if (ConversationResourceItem.currentConversationResourceItem != null)
                {
                    //将之前的会话卡片恢复为默认的背景色
                    ConversationResourceItem.currentConversationResourceItem.bor.Background = new SolidColorBrush(Colors.Transparent);
                }
                //点击选择自己填充静态实例
                ConversationResourceItem.currentConversationResourceItem = this;

                //设置选择后的背景色
                this.SetCardBackColor();

                TimerJob.StartRun(new Action(() =>
                {
                    //资源属性刷新
                    //MainWindow.conversationResourceWindow.RefleshJustView();
                }), 700);
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
Пример #3
0
        /// <summary>
        /// 打开文件框并选择图片格式的文件进行甩屏操作
        /// </summary>
        private void OpenFile()
        {
            try
            {
                OpenFileDialog dialog = new OpenFileDialog();
                //打开选项对话框
                dialog.Filter = "图片文件(*.jpg,*.jpeg,*.png,*.gif)|*.jpeg;*.gif;*.png;*.jpg;)";
                //设置为多选
                dialog.Multiselect = true;
                if (dialog.ShowDialog() == true)
                {
                    var files = dialog.FileNames;

                    foreach (var file in files)
                    {
                        tb.AddItem(new Conference.Control.DragView.DragTabItem()
                        {
                            Element = new Controls.Image()
                            {
                                Source = new BitmapImage(new Uri(file, UriKind.RelativeOrAbsolute))
                            }
                        });
                    }
                    TimerJob.StartRun(new Action(() =>
                    {
                        //投影到大屏幕
                        this.CutToOtherClient();
                    }));
                }
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
Пример #4
0
        /// <summary>
        /// 获取信息失败
        /// </summary>
        private void GetClientAppConfigFailedDealWidth()
        {
            try
            {
                this.Dispatcher.BeginInvoke(new Action(() =>
                {
                    if (this.loginWindow != null)
                    {
                        this.loginWindow.txtInitializtionColor.Foreground = new SolidColorBrush(Colors.Red);
                        this.loginWindow.LoginEnviromentTip = "无法连接到服务器。。。";


                        #region 重置(先判断计时器是否已经在监测)

                        if (CheckLoginInitCompleatetimer == null)
                        {
                            TimerJob.StartRun(new Action(() =>
                            {
                                this.LoginEnviromentInit3();
                            }), 2500, out CheckLoginInitCompleatetimer);
                        }

                        #endregion
                    }
                }));
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }
Пример #5
0
        /// <summary>
        /// 树视图加载事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void ConferenceTreeView_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                TimerJob.StartRun(new Action(() =>
                {
                    //初始化视图容器的宽度
                    this.ViewBoxWidth = this.borDiscussTheme.ActualWidth;
                    //初始化视图容器的高度
                    this.ViewBoxHeigth = this.borDiscussTheme.ActualHeight;

                    ///长加宽
                    var widthAddHeigth = this.ViewBoxWidth + this.ViewBoxHeigth;

                    //设置视图缩放的宽度比例
                    this.constratParameterAboutWidth = this.ViewBoxWidth / widthAddHeigth;
                    //设置视图缩放的高度比例
                    this.constratParameterAboutHeight = this.ViewBoxHeigth / widthAddHeigth;
                }), 1000);
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }
Пример #6
0
        /// <summary>
        /// 附加到新窗体
        /// </summary>
        /// <param name="handle"></param>
        public static void DockToNewParentWindow(IntPtr handle, Action<bool> callBack)
        {
            try
            {
                if (Constant.lyncClient != null && Constant.lyncClient.State == ClientState.SignedIn && LyncHelper.MainConversation != null && !LyncHelper.MainConversation.IsDocked)
                {
                    if (LyncHelper.MainConversation != null)
                    {
                        if (LyncHelper.MainConversation.IsFullScreen)
                        {
                            //先退出全屏
                            LyncHelper.ExitFullScreen();
                        }

                        TimerJob.StartRun(new Action(() =>
                        {
                            if (!LyncHelper.MainConversation.IsDocked && LyncHelper.MainConversation.State == ConversationWindowState.Initialized)
                            {
                                LyncHelper.MainConversation.Dock(handle);
                                LyncHelper.FullScreen();
                                callBack(true);
                            }
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(typeof(LyncHelper), ex);
            }
            finally
            {
            }
        }
Пример #7
0
        /// <summary>
        /// 修复会话
        /// </summary>
        private void RepairConversationCallBack()
        {
            try
            {
                if (!string.IsNullOrEmpty(this.meetAddress))
                {
                    MainWindow.mainWindow.Topmost = true;
                    TimerJob.StartRun(new Action(() =>
                    {
                        //取消置顶
                        MainWindow.mainWindow.Topmost = false;
                    }), 2000);
                    LyncHelper.CloseAllConversation(new Action(() =>
                    {
                    }));

                    LyncHelper.JoinConversationByWebBrowser(this.meetAddress);
                    //释放dns(改为自由获取),主窗体状态还原(非置顶)
                }
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }
Пример #8
0
        /// <summary>
        /// 自动登陆
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void LoginWindow_ContentRendered(object sender, EventArgs e)
        {
            try
            {
                //是否为自动登陆(私人模式启用)
                if (this.IsAutoLogin)
                {
                    //是否自动登陆
                    DispatcherTimer timer = null;

                    TimerJob.StartRun(new Action(() =>
                    {
                        if (this.IsLogining == System.Windows.Visibility.Hidden)
                        {
                            //开始登陆
                            this.Login();
                        }
                        else
                        {
                            timer.Stop();
                        }
                    }), 50, out timer);
                }
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
Пример #9
0
 public void LoginButtonIsEnable()
 {
     try
     {
         if (!this.LoginPanelIsEnable)
         {
             DispatcherTimer timer = null;
             TimerJob.StartRun(new Action(() =>
             {
                 if (this.CanThrow)
                 {
                     this.LoginPanelIsEnable = true;
                     timer.Stop();
                 }
             }), 800, out timer);
         }
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
     finally
     {
     }
 }
Пример #10
0
 /// <summary>
 /// 改语音节点的UI渲染
 /// </summary>
 public void AudioItemMesaure()
 {
     try
     {
         //先进行隐藏,UI动态加载完成之后再显示
         this.Visibility = System.Windows.Visibility.Hidden;
         TimerJob.StartRun(new Action(() =>
         {
             double iMMActualWidth = ConferenceAudio_View.conferenceAudio_View.GetIMMView_ActualWidth();
             //设置IMM信息的宽度最大值
             var conversationWidth = iMMActualWidth - 260;
             //不能为负值
             if (conversationWidth > 0)
             {
                 //最多约束宽度设置
                 this.txtAudio.MaxWidth = conversationWidth;
             }
             //显示该语音节点可见
             this.Visibility = System.Windows.Visibility.Visible;
         }));
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
     finally
     {
     }
 }
 /// <summary>
 /// 文本框编辑权限控制器(标题)
 /// </summary>
 public void TittleLimitControlCenter()
 {
     try
     {
         //一个节点对应一个计时器
         if (TittleEditControlTimer == null)
         {
             TimerJob.StartRun(new Action(() =>
             {
                 foreach (var item in ConferenceAudioItemList)
                 {
                     //完毕敲键盘
                     if (!item.txtAudio.IsKeyboardFocused)
                     {
                         //编辑完毕
                         item.IsEditNow = false;
                     }
                 }
             }), 1000, out TittleEditControlTimer);
         }
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
     finally
     {
     }
 }
Пример #12
0
 /// <summary>
 /// 弹出软键盘
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void btnkeyBoard_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         //switch (mainPage.ViewSelectedItemEnum)
         //{
         //    case ViewSelectedItemEnum.Meet:
         //        break;
         //    case ViewSelectedItemEnum.Tree:
         //        this.UsingTouchKeyBoard();
         //        break;
         //    case ViewSelectedItemEnum.Space:
         //        this.OpenTheTouchKeyBoard();
         //        break;
         //    case ViewSelectedItemEnum.Resource:
         //        this.OpenTheTouchKeyBoard();
         //        break;
         //    case ViewSelectedItemEnum.IMM:
         //        this.UsingTouchKeyBoard();
         //        break;
         //    case ViewSelectedItemEnum.PersonNote:
         //        this.OpenTheTouchKeyBoard();
         //        break;
         //    case ViewSelectedItemEnum.MeetVote:
         //        this.OpenTheTouchKeyBoard();
         //        break;
         //    case ViewSelectedItemEnum.U_Disk:
         //        break;
         //    case ViewSelectedItemEnum.Meet_Change:
         //        break;
         //    case ViewSelectedItemEnum.Chair:
         //        break;
         //    case ViewSelectedItemEnum.Studiom:
         //        break;
         //    case ViewSelectedItemEnum.SystemSetting:
         //        break;
         //    case ViewSelectedItemEnum.Tool:
         //        break;
         //    default:
         //        break;
         //}
         this.OpenTheTouchKeyBoard();
         //使用计时器执行软键盘透明设置
         TimerJob.StartRun(new Action(() =>
         {
             //设置键盘透明度
             this.TouchKeyBoardOpacitySetting();
         }), 1000);
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
     finally
     {
     }
 }
Пример #13
0
        public void UPloadMeetAddressAndCancelLock(bool successed)
        {
            try
            {
                #region 获取会议地址并上传到服务器

                //只有会话初始化完毕才有的结果
                DispatcherTimer lynTimer = null;
                TimerJob.StartRun(new Action(() =>
                {
                    if (LyncHelper.MainConversation != null && LyncHelper.MainConversation.Conversation.Properties.ContainsKey(ConversationProperty.ConferenceAccessInformation))
                    {
                        ConferenceAccessInformation conferenceAccessInformation = (ConferenceAccessInformation)LyncHelper.MainConversation.Conversation.Properties[ConversationProperty.ConferenceAccessInformation];
                        if (!string.IsNullOrEmpty(conferenceAccessInformation.InternalUrl))
                        {
                            //开启会话
                            ModelManage.ConferenceLyncConversation.FillConversation(Constant.ConferenceName, conferenceAccessInformation.InternalUrl, new Action <bool>((issuccessed) =>
                            {
                                if (successed)
                                {
                                    #region 允许其他成员进行会议查询并进行初始化

                                    ModelManage.ConferenceLyncConversation.AllowConversationInit(Constant.ConferenceName, new Action <bool>((flg) =>
                                    {
                                    }));

                                    #endregion
                                }
                            }));

                            #region 释放dns(改为自由获取),主窗体状态还原(非置顶)

                            TimerJob.StartRun(new Action(() =>
                            {
                                //设置DNS
                                NetWorkAdapter.SetNetworkAdapter(Constant.RouteIp);
                                //取消置顶
                                MainWindow.mainWindow.Topmost = false;
                            }));
                            #endregion

                            lynTimer.Stop();
                        }
                    }
                }), 500, out lynTimer);

                #endregion
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }
Пример #14
0
 /// <summary>
 /// 上传图片
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void imgUPload(string UploadImg)
 {
     try
     {
         if (string.IsNullOrEmpty(UploadImg))
         {
             return;
         }
         //生成一个ftp辅助类()
         FtpManage ftpHelper = new FtpManage();
         //头像地址
         string personImgUri = Constant.ConferenceFtpWebAddressFront + Constant.FtpServercePersonImgName;
         //删除文件
         FtpManage.DeleteFile(personImgUri, Constant.FtpUserName, Constant.FtpPassword);
         //上传头像
         ftpHelper.UploadFtp(UploadImg, Constant.LoginUserName + ".png", Constant.ConferenceFtpWebAddressFront + Constant.FtpServercePersonImgName, "/", Constant.FtpUserName, Constant.FtpPassword, delegate(long Length, double progress)
         {
         }, delegate(System.Exception error, bool result)
         {
             if (result)
             {
                 //使用异步委托
                 this.Dispatcher.BeginInvoke(new Action(() =>
                 {
                     try
                     {
                         //显示状态
                         this.txtUPloadTip.Visibility = System.Windows.Visibility.Visible;
                         //过渡一端时间隐藏提示状态
                         TimerJob.StartRun(new Action(() =>
                         {
                             this.txtUPloadTip.Visibility = System.Windows.Visibility.Collapsed;
                         }), 2000);
                     }
                     catch (Exception ex)
                     {
                         LogManage.WriteLog(this.GetType(), ex);
                     }
                     finally
                     {
                     }
                 }));
             }
         });
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
     finally
     {
     }
 }
Пример #15
0
        public ConferenceAudioItem()
        {
            try
            {
                //UI加载
                InitializeComponent();
                //设置当前上下文
                this.DataContext = this;

                //当前为会议主持人可以进行节点删除
                if (Constant.IsMeetingPresenter)
                {
                    //删除按钮可用
                    this.DeleteEnable = true;
                }
                else
                {
                    //删除按钮是不可用
                    this.DeleteEnable = false;
                }

                #region 注册事件

                //播放
                this.btnItemPlay.PreviewMouseLeftButtonDown += btnItemPlay_PreviewMouseLeftButtonDown;
                //删除
                this.btnRemove.PreviewMouseLeftButtonDown += btnRemove_PreviewMouseLeftButtonDown;
                //语音转文字
                this.btnAudioTransfer.Click += btnAudioTransfer_Click;
                //文本更改
                this.txtAudio.TextChanged += txtAudio_TextChanged;

                #endregion

                this.Visibility = System.Windows.Visibility.Hidden;
                TimerJob.StartRun(new Action(() =>
                {
                    double iMMActualWidth = MainWindow.MainPageInstance.ConferenceAudio_View.GetIMMView_ActualWidth();
                    //设置IMM信息的宽度最大值
                    var conversationWidth = iMMActualWidth - 260;
                    //不能为负值
                    if (conversationWidth > 0)
                    {
                        this.txtAudio.MaxWidth = conversationWidth;
                    }
                    this.Visibility = System.Windows.Visibility.Visible;
                }));
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
Пример #16
0
        /// <summary>
        /// 登陆
        /// </summary>
        private void Login()
        {
            try
            {
                if (string.IsNullOrEmpty(this.txtUser.Text))
                {
                    this.CodeOrUserIsNull("请输入用户名");
                    return;
                }

                if (string.IsNullOrEmpty(this.pwd.Password))
                {
                    this.CodeOrUserIsNull("请输入密码");
                    return;
                }

                TimerJob.StartRun(new Action(() =>
                {
                    //显示登陆提示(旋转)
                    this.IsLogining = vy.Visible;
                    //登陆编辑区域设置为不可用
                    this.LoginPanelIsEnable = false;
                }), 100);

                // 登陆前先进行判断(是否连接网络,是否能够连接服务器)
                bool networkIsOk = this.Check_NetWorkEnviroment();
                if (!networkIsOk)
                {
                    TimerJob.StartRun(new Action(() =>
                    {
                        //显示登陆提示(旋转)
                        this.IsLogining = vy.Hidden;
                        //登陆编辑区域设置为不可用
                        this.LoginPanelIsEnable = true;
                    }), 100);
                    return;
                }
                //判断用户是否在线
                this.Check_UserIsOnline();
            }
            catch (Exception ex)
            {
                //出现异常,关闭登陆提示
                this.IsLogining = vy.Collapsed;
                //将登陆编辑区域恢复为可用状态
                this.LoginPanelIsEnable = true;
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }
Пример #17
0
        public ConferenceRoomItem(ConferenceInformationEntityPC conferenceInformationEntity)
            : this()
        {
            try
            {
                //绑定当前上下文
                this.DataContext = conferenceInformationEntity;

                ConferenceInformationEntity = conferenceInformationEntity;

                if (conferenceInformationEntity.EndTime > DateTime.Now)
                {
                    this.borImg.Background = Application.Current.Resources["brush_Room2"] as ImageBrush;
                }
                else
                {
                    this.borImg.Background = Application.Current.Resources["brush_Room"] as ImageBrush;
                }


                //鼠标进入启动动画
                this.MouseEnter += ConferenceRoomItem_MouseEnter;
                //鼠标移除启动反向动画
                this.MouseLeave += ConferenceRoomItem_MouseLeave;

                #region 注册事件

                //图例点击
                this.MouseLeftButtonDown += ConferenceRoomItem_MouseLeftButtonDown;

                #endregion

                DispatcherTimer timer = null;
                TimerJob.StartRun(new Action(() =>
                {
                    if (Constant.DicParticipant.Count > 0)
                    {
                        //参会人绑定
                        if (conferenceInformationEntity.ApplyPeople != null && Constant.DicParticipant.ContainsKey(conferenceInformationEntity.ApplyPeople))
                        {
                            conferenceInformationEntity.ApplyPeople = Constant.DicParticipant[conferenceInformationEntity.ApplyPeople];
                        }
                        timer.Stop();
                    }
                }), 600, out timer);
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
Пример #18
0
        /// <summary>
        /// 消息提示(闪烁)
        /// </summary>
        public void IMMReceivMessageFlash()
        {
            try
            {
                //停止计时器工作
                if (this.IMMFlashTimer != null)
                {
                    this.IMMFlashTimer.Stop();
                }

                //闪烁次数
                int flashCount = 0;

                TimerJob.StartRun(new Action(() =>
                {
                    //闪烁次数递增
                    flashCount++;

                    //标准模式
                    if (!this.isSimpleModel)
                    {
                        //显示状态转为隐藏
                        this.ShowOrDisplay(this.borImmTip);
                        if (flashCount >= 8)
                        {
                            this.borImmTip.Visibility = vy.Visible;
                            //停止计时器工作
                            this.IMMFlashTimer.Stop();
                        }
                    }
                    else
                    {
                        //显示状态转为隐藏
                        this.ShowOrDisplay(this.borImmTip2);
                        if (flashCount >= 8)
                        {
                            this.borImmTip2.Visibility = vy.Visible;
                            //停止计时器工作
                            this.IMMFlashTimer.Stop();
                        }
                    }
                }), 500, out this.IMMFlashTimer);
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }
Пример #19
0
        /// <summary>
        /// 数据刷新
        /// </summary>
        /// <param name="folder"></param>
        public void RefleshSpaceData(BreadLine bread_Line)
        {
            try
            {
                //面包线是否为null
                if (bread_Line == null)
                {
                    return;
                }
                if (bread_Line.Folder != null)
                {
                    //等待提示
                    this.ShowTip();

                    TimerJob.StartRun(new Action(() =>
                    {
                        //清除书架
                        this.Items_Clear();
                        //获取文件夹
                        SP.Folder folder = bread_Line.Folder;

                        ThreadPool.QueueUserWorkItem((o) =>
                        {
                            try
                            {
                                //加载当前会议文件夹
                                SpaceCodeEnterEntity.ClientContextManage.LoadMethod(folder.Folders);
                                //获取当会议文件夹
                                List <SP.Folder> folderList = folder.Folders.ToList <SP.Folder>();

                                //加载当前所有文件
                                SpaceCodeEnterEntity.ClientContextManage.LoadMethod(folder.Files);
                                //获取当前所有文件
                                List <SP.File> fileList = folder.Files.ToList <SP.File>();

                                DataLoad_All(folderList, fileList);
                            }
                            catch (Exception ex)
                            {
                                LogManage.WriteLog(this.GetType(), ex);
                            }
                        });
                    }));
                }
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
Пример #20
0
 /// <summary>
 /// 键盘弹出
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void KeyBoard_UP(object sender, TouchEventArgs e)
 {
     try
     {
         TimerJob.StartRun(new Action(() =>
         {
             //显示触摸键盘
             TouchKeyBoard.ShowInputPanel();
         }), 100);
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
 }
Пример #21
0
 /// <summary>
 /// 拖动完成事件
 /// </summary>
 void tb_DragViewCompleateEvent()
 {
     try
     {
         TimerJob.StartRun(new Action(() =>
         {
             //投影到大屏幕
             this.CutToOtherClient();
         }));
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
 }
Пример #22
0
 /// <summary>
 /// 会话加载完成事件
 /// </summary>
 void ConversationAddCompleateEvent()
 {
     try
     {
         //取消置顶
         TimerJob.StartRun(new Action(() =>
         {
             MainWindow.mainWindow.Topmost = false;
         }), 1000);
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
 }
Пример #23
0
        /// <summary>
        /// 全局信息填充及初始化
        /// </summary>
        /// <param name="conferenceInformationEntity">会议信息数据实体</param>
        /// <param name="callBack"></param>
        private void GlobleInfoLoadAndInit(ConferenceInformationEntityPC conferenceInformationEntity)
        {
            try
            {
                TimerJob.StartRun(new Action(() =>
                {
                    if (this.IsDisposeAllSocekt)
                    {
                        if (this.CheckDisposeAllSocketTimer != null)
                        {
                            this.CheckDisposeAllSocketTimer.Stop();
                        }
                        //模式管理中心
                        this.Model_ManageCenter(conferenceInformationEntity.EducationMode, conferenceInformationEntity.SimpleMode);
                        //填充全局字段(参会人列表、会议名称、会议ID)
                        this.GlobalDataInit(conferenceInformationEntity);

                        //会话标示服务器判断移除
                        ModelManage.ConferenceLyncConversation.RemoveConversation(Constant.ConferenceName, new Action <bool>((successed) =>
                        {
                            if (successed)
                            {
                                this.canBeginLyncConversationInit = true;
                            }
                        }));
                        //判断是否为会议主持人(是的话设置全局标示)
                        MainPageBase.PresentSetting(conferenceInformationEntity);

                        //共享协作数据准备
                        this.ConversationDataInitPrepare();
                        //填充参会人信息
                        LyncHelper.AddContacts();

                        //重新进行会话配置
                        this.Conversation_Configure();
                    }
                }), 800, out this.CheckDisposeAllSocketTimer);
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }
Пример #24
0
        /// <summary>
        /// 会话初始化
        /// </summary>
        public void LyncConversationInit()
        {
            try
            {
                //检查当前会议是否包含会话
                ModelManage.ConferenceLyncConversation.ContainConversation(Constant.ConferenceName, new Action <bool, string>((successed, meet_Address) =>
                {
                    ModelManage.ConferenceLyncConversation.CheckConversationInit(Constant.ConferenceName, new Action <bool>((canInit) =>
                    {
                        ////检测是否可以会话初始化计时数量
                        //this.CheckConversationInitCount++;
                        //if (this.CheckConversationInitCount == 8 && !string.IsNullOrEmpty(meet_Address))
                        //{
                        //    //允许其他成员进行会议查询并进行初始化
                        //    ModelManage.ConferenceLyncConversation.AllowConversationInit(Constant.ConferenceName, new Action<bool>((flg) =>
                        //    {

                        //    }));
                        //}
                        if (canInit)
                        {
                            //设置DNS
                            NetWorkAdapter.SetNetworkAdapter(Constant.DNS1);
                            //设置置顶
                            MainWindow.mainWindow.Topmost = true;
                            //创建或进入会话
                            this.MeetSetupOrEnter(successed, meet_Address);
                        }
                        else
                        {
                            TimerJob.StartRun(new Action(() =>
                            {
                                this.LyncConversationInit();
                            }), 1200);
                        }
                    }));
                }));
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }
Пример #25
0
        /// <summary>
        /// 会话加载完成事件
        /// </summary>
        void conversationAddCompleateCallBack()
        {
            try
            {
                //取消置顶
                TimerJob.StartRun(new Action(() =>
                {
                    MainWindow.mainWindow.Topmost = false;
                }), 1000);

                //加载会话人员列表
                this.ConversationM.ParticalListInit();
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
Пример #26
0
 /// <summary>
 /// 图例点击
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void ConferenceRoomItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     try
     {
         //if (!canEnter)
         //{
         //    this.borImg.Background = Application.Current.Resources[""] as ImageBrush;
         //    //设置为可直接进入
         //    //this.canEnter = true;
         //}
         //else
         //{
         //    if (this.ItemClick != null)
         //    {
         //        this.ItemClick();
         //        //设置为不可直接进入
         //        //this.canEnter = false;
         //    }
         //}
         if (e.ClickCount == 2 && ConferenceInformationEntity != null)
         {
             if (ConferenceInformationEntity.BeginTime < DateTime.Now.AddMinutes(-30))
             {
                 if (this.ItemClick != null)
                 {
                     this.ItemClick();
                 }
             }
             else
             {
                 this.gridTip.Visibility = System.Windows.Visibility.Visible;
                 TimerJob.StartRun(new Action(() =>
                 {
                     this.gridTip.Visibility = System.Windows.Visibility.Collapsed;
                 }), 1000);
             }
         }
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
 }
Пример #27
0
        /// <summary>
        /// 获取会议地址上传到服务器(解除锁定)
        /// </summary>
        /// <param name="successed">是否上传成功</param>
        public void UPloadMeetAddressAndCancelLock(bool successed)
        {
            try
            {
                //只有会话初始化完毕才有的结果
                DispatcherTimer lynTimer = null;
                TimerJob.StartRun(new Action(() =>
                {
                    string address = LyncHelper.GetConversation_Address();
                    if (!string.IsNullOrEmpty(address))
                    {
                        lynTimer.Stop();
                        //开启会话
                        ModelManage.ConferenceLyncConversation.FillConversation(Constant.ConferenceName, address, new Action <bool>((issuccessed) =>
                        {
                            if (successed)
                            {
                                //允许其他成员进行会议查询并进行初始化
                                ModelManage.ConferenceLyncConversation.AllowConversationInit(Constant.ConferenceName, new Action <bool>((flg) =>
                                {
                                }));
                            }
                        }));

                        //释放dns(改为自由获取),主窗体状态还原(非置顶)
                        TimerJob.StartRun(new Action(() =>
                        {
                            //设置DNS
                            NetWorkAdapter.SetNetworkAdapter(Constant.RouteIp);
                            //取消置顶
                            MainWindow.mainWindow.Topmost = false;
                        }));
                    }
                }), 500, out lynTimer);
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }
Пример #28
0
        /// <summary>
        /// 启动视频
        /// </summary>
        /// <param name="conversationWindow"></param>
        public static void StartVideo(ConversationWindow conversationWindow)
        {
            try
            {
                ThreadPool.QueueUserWorkItem((o) =>
                {
                    AVModality avModality = (AVModality)conversationWindow.Conversation.SelfParticipant.Modalities[ModalityTypes.AudioVideo];
                    if (avModality != null)
                    {
                        VideoChannel videoChannel = avModality.VideoChannel;

                        //object obV = videoChannel.InnerObject;
                        if (videoChannel != null)
                        {
                            if (videoChannel != null && videoChannel.CanInvoke(ChannelAction.Start))
                            {
                                videoChannel.BeginStart(null, null);
                            }

                            TimerJob.StartRun(new Action(() =>
                            {
                                if (videoChannel.State != ChannelState.Connecting)
                                {
                                    if (videoChannel != null && videoChannel.CanInvoke(ChannelAction.Start))
                                    {
                                        videoChannel.BeginStart(null, null);
                                    }
                                }
                            }), 1500);
                            LyncHelper.ExitFullScreen();
                            LyncHelper.FullScreen();
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(typeof(LyncHelper), ex);
            }
            finally
            {
            }
        }
Пример #29
0
        /// <summary>
        /// 登陆
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                TimerJob.StartRun(new Action(() =>
                {
                    //显示登陆提示(旋转)
                    this.IsLogining = System.Windows.Visibility.Visible;
                }), 100);

                TimerJob.StartRun(new Action(() =>
                {
                    this.Login();
                }), 100);
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
Пример #30
0
        /// <summary>
        /// 重新进行会话配置
        /// </summary>
        private void Conversation_Configure()
        {
            try
            {
                TimerJob.StartRun(new Action(() =>
                {
                    if (this.canBeginLyncConversationInit)
                    {
                        this.CheckConversationInitTimer.Stop();

                        #region 获取服务端口

                        //通讯模块数据准备
                        this.CommunicationDataInitPrepare();

                        //获取服务端口
                        this.CommunicationManage.GetServicePort(new Action(() =>
                        {
                            this.MyConferenceDataInitPrepare();
                            //位置信息获取并设置
                            this.MyConferenceView.IntoOneSeat_AboutMyConference();
                        }));

                        #endregion

                        //检测通讯是否正常(知识树)
                        this.CommunicationManage.CheckAndRepairClientSocekt(MainPage.mainPage.CheckNetWorkCallBack);

                        //会话初始化
                        this.LyncConversationInit();
                    }
                }), 1000, out this.CheckConversationInitTimer);
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
            finally
            {
            }
        }