public async Task JoinMeetingAsync(string meetingId, string meetingPassword, string userName) { var controller = await this.ShowProgressAsync("Anmeldung", "Meeting wird verbunden..."); controller.SetIndeterminate(); controller.SetCancelable(true); controller.Canceled += (e, s) => { ZoomService.LeaveMeeting(); }; ZoomService.JoinMeeting(ulong.Parse(meetingId.Trim().Replace(" ", "")), meetingPassword, userName, this.VideoCanvas); await TaskEx.WaitUntil(() => { controller.SetMessage(ZoomConstants.MeetingStatusDecoder(ZoomService.MeetingStatus)); return(controller.IsCanceled || ZoomService.InMeeting); }); await controller.CloseAsync(); }