private async void IntoBtn_OnClick(object sender, RoutedEventArgs e) { var btn = (Button)sender; var course = (Course)btn.Tag; AppCache.AddOrUpdate(CacheKey.MeetingId, course.MeetingId); GlobalData.Instance.Course = course; //判断该课堂视讯号与当前登录人的视讯号是否相同,如果相同,设置为主讲 var mainclassroom = GlobalData.Instance.Classrooms.ToList().FirstOrDefault(o => o.Id == course.MainClassroomId.ToString()); if (mainclassroom != null) { AppCache.AddOrUpdate(CacheKey.HostId, mainclassroom.SchoolRoomNum); } var intoClassView = new IntoClassView(IntoClassType.Join); intoClassView.Show(); var meetingInfoResult = await _meetingService.GetMeetingInfo(course.MeetingId); var meetingList = _localDataManager.GetMeetingList() ?? new MeetingList() { MeetingInfos = new List <MeetingItem>() }; var cachedMeeting = meetingList.MeetingInfos.FirstOrDefault(meeting => meeting.MeetingId == course.MeetingId); if (cachedMeeting != null) { cachedMeeting.LastActivityTime = DateTime.Now; } else { meetingList.MeetingInfos.Add(new MeetingItem() { LastActivityTime = DateTime.Now, MeetingId = course.MeetingId, CreatorName = mainclassroom?.SchoolRoomName, IsClose = false, CreatorId = mainclassroom?.SchoolRoomNum, CreateTime = DateTime.Parse(meetingInfoResult.Result.StartTime), }); } _localDataManager.SaveMeetingList(meetingList); _view.Close(); }
public async void JoinClass(string classNo) { //1.判断课堂号是否存在 try { if (string.IsNullOrEmpty(classNo)) { MessageQueueManager.Instance.AddError("请输入课堂号!"); return; } int meetingId; var isNumber = int.TryParse(classNo, out meetingId); if (!isNumber) { MessageQueueManager.Instance.AddError(MessageManager.MeetingNoExistError); } else { if (meetingId <= 0) { MessageQueueManager.Instance.AddError(MessageManager.MeetingNoExistError); return; } //判断课堂是否存在 var reuslt = await _meetingService.IsMeetingExist(meetingId); if (reuslt.StatusCode != 0) { MessageQueueManager.Instance.AddError(MessageManager.MeetingNoExistError); } else { var meetingList = _localDataManager.GetMeetingList() ?? new MeetingList() { MeetingInfos = new List <MeetingItem>() }; var localMeeting = meetingList.MeetingInfos.FirstOrDefault(o => o.MeetingId == meetingId); var meeting = GlobalData.Instance.MeetingList?.FirstOrDefault(o => o.MeetingId == meetingId); if (localMeeting == null && meeting != null) { meetingList.MeetingInfos.Add(new MeetingItem() { LastActivityTime = DateTime.Now, MeetingId = meetingId, IsClose = false, CreatorId = meeting.Account.AccountId.ToString(), CreateTime = DateTime.Parse(meeting.StartTime), CreatorName = GlobalData.Instance.Classrooms.FirstOrDefault(cls => cls.SchoolRoomNum == meeting.HostId.ToString())?.SchoolRoomName, }); AppCache.AddOrUpdate(CacheKey.HostId, meeting.Account.AccountId); } else { if (localMeeting != null) { localMeeting.LastActivityTime = DateTime.Now; AppCache.AddOrUpdate(CacheKey.HostId, localMeeting?.CreatorId); } else { MeetingResult <MeetingModel> meetingModelResult = await _meetingService.GetMeetingInfo(meetingId); meeting = meetingModelResult.Result; meetingList.MeetingInfos.Add(new MeetingItem() { LastActivityTime = DateTime.Now, MeetingId = meetingId, IsClose = false, CreatorId = meeting.Account.AccountId.ToString(), CreateTime = DateTime.Parse(meeting.StartTime), CreatorName = GlobalData.Instance.Classrooms.FirstOrDefault(cls => cls.SchoolRoomNum == meeting.HostId.ToString())?.SchoolRoomName, }); AppCache.AddOrUpdate(CacheKey.HostId, meetingModelResult.Result.HostId); } } _localDataManager.SaveMeetingList(meetingList); //进入课堂 AppCache.AddOrUpdate(CacheKey.MeetingId, meetingId); GlobalData.Instance.Course = new Course(); var intoClassView = new IntoClassView(IntoClassType.Join); intoClassView.Show(); txt_classNo.Text = string.Empty; _view.Close(); } } } catch (Exception ex) { Log.Logger.Error($"加入课堂发生异常 exception:{ex}"); MessageQueueManager.Instance.AddError(MessageManager.JoinClassError); } }