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();
        }