Esempio n. 1
0
 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();
         });
     }
 }
Esempio n. 2
0
        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);
            }
        }