public void Executejoinchat() { if (joinChatViewModels.Count == 0) { JoinChatViewModel joinChatViewModel = new JoinChatViewModel(_imessanger); joinChatViewModel.Chatnumber = this.Chatnumber; joinChatViewModel.Usernickname = Usernickname; joinChatViewModels.Add(joinChatViewModel); App.Current.Dispatcher.InvokeAsync(() => { JoinChatView joinChatView = new JoinChatView(joinChatViewModel); joinChatView.Show(); }); } else { App.Current.Dispatcher.InvokeAsync(() => { JoinChatView joinChatView = new JoinChatView(joinChatViewModels[0]); joinChatView.Show(); }); } }
public static async void NavigateToInviteLink(IProtoService protoService, INavigationService navigation, string link) { if (!link.StartsWith("http")) { link = "https://t.me/joinchat/" + link; } var response = await protoService.SendAsync(new CheckChatInviteLink(link)); if (response is ChatInviteLinkInfo info) { if (info.ChatId != 0) { navigation.NavigateToChat(info.ChatId); } else { var dialog = new JoinChatView(protoService, info); var confirm = await dialog.ShowAsync(); if (confirm == ContentDialogBaseResult.OK) { var import = await protoService.SendAsync(new JoinChatByInviteLink(link)); if (import is Chat chat) { navigation.NavigateToChat(chat); } else if (import is Error error) { if (!error.CodeEquals(ErrorCode.BAD_REQUEST)) { Execute.ShowDebugMessage("messages.importChatInvite error " + error); return; } if (error.TypeEquals(ErrorType.INVITE_HASH_EMPTY) || error.TypeEquals(ErrorType.INVITE_HASH_INVALID) || error.TypeEquals(ErrorType.INVITE_HASH_EXPIRED)) { //MessageBox.Show(Strings.Additional.GroupNotExistsError, Strings.Additional.Error, 0); return; } else if (error.TypeEquals(ErrorType.USERS_TOO_MUCH)) { //MessageBox.Show(Strings.Additional.UsersTooMuch, Strings.Additional.Error, 0); return; } else if (error.TypeEquals(ErrorType.BOTS_TOO_MUCH)) { //MessageBox.Show(Strings.Additional.BotsTooMuch, Strings.Additional.Error, 0); return; } else if (error.TypeEquals(ErrorType.USER_ALREADY_PARTICIPANT)) { return; } Execute.ShowDebugMessage("messages.importChatInvite error " + error); } } } } else if (response is Error error) { if (!error.CodeEquals(ErrorCode.BAD_REQUEST)) { Execute.ShowDebugMessage("messages.checkChatInvite error " + error); return; } if (error.TypeEquals(ErrorType.INVITE_HASH_EMPTY) || error.TypeEquals(ErrorType.INVITE_HASH_INVALID) || error.TypeEquals(ErrorType.INVITE_HASH_EXPIRED)) { //MessageBox.Show(Strings.Additional.GroupNotExistsError, Strings.Additional.Error, 0); await TLMessageDialog.ShowAsync("This invite link is broken or has expired.", "Warning", "OK"); return; } Execute.ShowDebugMessage("messages.checkChatInvite error " + error); } }