public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state) { Item = null; var channel = parameter as TLChannel; var peer = parameter as TLPeerChannel; if (peer != null) { channel = CacheService.GetChat(peer.ChannelId) as TLChannel; } if (channel != null) { Item = channel; IsPublic = _item.HasUsername; var response = await ProtoService.CheckUsernameAsync(_item.ToInputChannel(), "username"); if (response.IsSucceeded) { HasTooMuchUsernames = false; } else { if (response.Error.TypeEquals(TLErrorType.CHANNELS_ADMIN_PUBLIC_TOO_MUCH)) { HasTooMuchUsernames = true; LoadAdminedPublicChannels(); } } } }
public async Task CheckIfAvailableAsync(string text) { var response = await ProtoService.CheckUsernameAsync(text); if (response.IsSucceeded) { if (response.Result) { IsLoading = false; IsAvailable = true; ErrorMessage = null; } else { IsLoading = false; IsAvailable = false; ErrorMessage = "Sorry, this username is already taken"; } } else { if (response.Error.TypeEquals(TLErrorType.USERNAME_INVALID)) { IsLoading = false; IsAvailable = false; ErrorMessage = "Sorry, this username is invalid"; } else if (response.Error.TypeEquals(TLErrorType.USERNAME_OCCUPIED)) { IsLoading = false; IsAvailable = false; ErrorMessage = "Sorry, this username is already taken"; } } }
public async void CheckAvailability(string text) { var response = await ProtoService.CheckUsernameAsync(text); if (response.IsSucceeded) { if (response.Result) { IsLoading = false; IsAvailable = true; ErrorMessage = null; } else { IsLoading = false; IsAvailable = false; ErrorMessage = Strings.Android.UsernameInUse; } } else { if (response.Error.TypeEquals(TLErrorType.USERNAME_INVALID)) { IsLoading = false; IsAvailable = false; ErrorMessage = Strings.Android.UsernameInvalid; } else if (response.Error.TypeEquals(TLErrorType.USERNAME_OCCUPIED)) { IsLoading = false; IsAvailable = false; ErrorMessage = Strings.Android.UsernameInUse; } } }
public async void CheckAvailability(string text) { if (string.Equals(text, _item?.Username)) { IsLoading = false; IsAvailable = false; ErrorMessage = null; return; } var response = await ProtoService.CheckUsernameAsync(_item.ToInputChannel(), text); if (response.IsSucceeded) { if (response.Result) { IsLoading = false; IsAvailable = true; ErrorMessage = null; } else { IsLoading = false; IsAvailable = false; ErrorMessage = Strings.Android.UsernameInUse; } } else { if (response.Error.TypeEquals(TLErrorType.USERNAME_INVALID)) { IsLoading = false; IsAvailable = false; ErrorMessage = Strings.Android.UsernameInvalid; } else if (response.Error.TypeEquals(TLErrorType.USERNAME_OCCUPIED)) { IsLoading = false; IsAvailable = false; ErrorMessage = Strings.Android.UsernameInUse; } else if (response.Error.TypeEquals(TLErrorType.CHANNELS_ADMIN_PUBLIC_TOO_MUCH)) { HasTooMuchUsernames = true; LoadAdminedPublicChannels(); } } }
public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state) { _channel = (TLChannel)parameter; var response = await ProtoService.CheckUsernameAsync(_channel.ToInputChannel(), "username"); if (response.IsSucceeded) { HasTooMuchUsernames = false; } else { if (response.Error.TypeEquals(TLErrorType.CHANNELS_ADMIN_PUBLIC_TOO_MUCH)) { HasTooMuchUsernames = true; LoadAdminedPublicChannels(); } } }
public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state) { Item = null; Full = null; var channel = parameter as TLChannel; var peer = parameter as TLPeerChannel; if (peer != null) { channel = CacheService.GetChat(peer.ChannelId) as TLChannel; } if (channel != null) { Item = channel; Username = _item.Username; IsPublic = _item.HasUsername; var full = CacheService.GetFullChat(channel.Id) as TLChannelFull; if (full == null) { var response = await ProtoService.GetFullChannelAsync(channel.ToInputChannel()); if (response.IsSucceeded) { full = response.Result.FullChat as TLChannelFull; } } if (full != null) { Full = full; if (full.ExportedInvite is TLChatInviteExported exported) { InviteLink = exported.Link; } else { ExportInvite(); } if (full.IsCanSetUsername) { var username = await ProtoService.CheckUsernameAsync(_item.ToInputChannel(), "username"); if (username.IsSucceeded) { HasTooMuchUsernames = false; } else { if (username.Error.TypeEquals(TLErrorType.CHANNELS_ADMIN_PUBLIC_TOO_MUCH)) { HasTooMuchUsernames = true; LoadAdminedPublicChannels(); } } } } } }