Пример #1
0
        private void LoadModeMenuItems()
        {
            if (ModeMenuItems == null)
            {
                ModeMenuItems = new ObservableCollection <MenuItem>();
            }
            else
            {
                ModeMenuItems.Clear();
            }

            var modes = Enum.GetNames(typeof(MeetingMode));

            foreach (var mode in modes)
            {
                var newModeMenu = new MenuItem();
                newModeMenu.Header = EnumHelper.GetDescription(typeof(MeetingMode),
                                                               Enum.Parse(typeof(MeetingMode), mode));
                newModeMenu.Command          = ModeChangedCommand;
                newModeMenu.CommandParameter = mode;

                ModeMenuItems.Add(newModeMenu);
            }
            CurModeName = EnumHelper.GetDescription(typeof(MeetingMode), _viewLayoutService.MeetingMode);
        }
Пример #2
0
        //command handlers
        private async Task JoinMeetingAsync()
        {
            GlobalData.Instance.ViewArea = new ViewArea()
            {
                Width  = _meetingView.ActualWidth,
                Height = _meetingView.ActualHeight
            };

            uint[] uint32SOfNonDataArray =
            {
                (uint)_meetingView.PictureBox1.Handle.ToInt32(),
                (uint)_meetingView.PictureBox2.Handle.ToInt32(),
                (uint)_meetingView.PictureBox3.Handle.ToInt32(),
                (uint)_meetingView.PictureBox4.Handle.ToInt32(),
            };

            foreach (var hwnd in uint32SOfNonDataArray)
            {
                Log.Logger.Debug($"【figure hwnd】:{hwnd}");
            }

            uint[] uint32SOfDataArray = { (uint)_meetingView.PictureBox5.Handle.ToInt32() };

            foreach (var hwnd in uint32SOfDataArray)
            {
                Log.Logger.Debug($"【data hwnd】:{hwnd}");
            }

            JoinMeetingResult joinMeetingResult =
                await
                _sdkService.JoinMeeting(MeetingId, uint32SOfNonDataArray, uint32SOfNonDataArray.Length,
                                        uint32SOfDataArray,
                                        uint32SOfDataArray.Length);

            //if failed to join meeting, needs to roll back
            if (joinMeetingResult.m_result.m_rc != 0)
            {
                Log.Logger.Error(
                    $"【join meeting result】:result={joinMeetingResult.m_result.m_rc}, msg={joinMeetingResult.m_result.m_message}");
                switch (joinMeetingResult.m_result.m_rc)
                {
                case 13:
                    joinMeetingResult.m_result.m_message = Messages.WarningNoCamera;
                    break;

                case 14:
                    joinMeetingResult.m_result.m_message = Messages.WarningNoMicrophone;
                    break;

                case 15:
                case -1009:
                    joinMeetingResult.m_result.m_message = Messages.WarningNoSpeaker;
                    break;

                case -915:
                    joinMeetingResult.m_result.m_message = Messages.WarningInvalidMeetingNo;
                    break;

                case -914:
                    joinMeetingResult.m_result.m_message = Messages.WarningMeetingHasBeenEnded;
                    break;
                }

                _startMeetingCallbackEvent(false, joinMeetingResult.m_result.m_message);
                _meetingView.Close();
            }
            else
            {
                //if join meeting successfully, then make main view invisible
                _startMeetingCallbackEvent(true, "");


                //if not speaker, then clear mode menu items
                if (!_sdkService.IsSpeaker)
                {
                    ModeMenuItems.Clear();
                    IsSpeaker = Visibility.Collapsed;
                }
                else
                {
                    IsSpeaker = Visibility.Visible;
                }

                if (_lessonDetail.Id > 0)
                {
                    ResponseResult result = await
                                            _bmsService.UpdateMeetingStatus(_lessonDetail.Id, _userInfo.UserId,
                                                                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                                                            string.Empty);

                    HasErrorMsg(result.Status, result.Message);
                }
            }
        }