private async Task OnAccountMusicProviderInvoke(MusicProviderAccount account) { var musicProvider = _musicProviderService.MusicProviders.First(x => x.Identifier == account.Id); if (account.IsConnected) { await _authenticationService.DisconnectAccountAsync(account.Id); } else { await NavigationService.Close(this); await NavigationService.Navigate <AuthenticationViewModel, AuthenticationViewModel.Holder>(new AuthenticationViewModel.Holder(musicProvider.Manifest.Authentication.ConnectUrl, musicProvider.Manifest.Authentication.RedirectUrl, account.Id)); } }
private async Task LoadItems() { MusicProviderAccounts.Clear(); // Load music providers that have an auth definition foreach (var musicProvider in _musicProviderService.MusicProviders.Where(x => x.Manifest.Authentication != null)) { var musicProviderAccount = new MusicProviderAccount(musicProvider.Identifier, musicProvider.Manifest.Name); // Check if the account is connected var isConnected = await _authenticationService.IsAccountConnectedAsync(musicProvider.Identifier); musicProviderAccount.ConnectedStatus = isConnected ? "Disconnect account" : "Connect account"; musicProviderAccount.IsConnected = isConnected; MusicProviderAccounts.Add(musicProviderAccount); } }