예제 #1
0
        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));
            }
        }
예제 #2
0
        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);
            }
        }