internal async Task LoadCableProviders(ChannelEx channel)
        {
            try
            {
                if (channel.LoginInfo == null)
                {
                    channel.LoginInfo = new ChannelLoginInfo();
                }

                IsLoading = true;
                var providers = await SettingsClient.GetCableProviders(channel.ID);

                if (providers != null)
                {
                    channel.LoginInfo.CableProviders = new ObservableCollection <ProviderCode>(providers);
                    if (!string.IsNullOrEmpty(channel.LoginInfo.ProviderCode))
                    {
                        var selectedCableProvider = channel.LoginInfo.CableProviders.FirstOrDefault(c => c.Code == channel.LoginInfo.ProviderCode);
                        if (selectedCableProvider != null)
                        {
                            channel.LoginInfo.SelectedCableProviderIndex = channel.LoginInfo.CableProviders.IndexOf(selectedCableProvider);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //XXX : Handle error
                LoggerService.Instance.Log("ERROR: MediaContent.LoadCableProviders: " + ex);
            }
            finally
            {
                IsLoading = false;
            }
        }
        private void loadStoredChannelLoginInfo(ChannelEx channel)
        {
            if (channel == null)
            {
                return;
            }

            string email = getAccountEmail();
            string storedChannelLoginData = UserStoreService.Instance.GetRecordFromKeychain(email + "channel-" + channel.ID);

            if (!string.IsNullOrEmpty(storedChannelLoginData))
            {
                var loginInfo = JsonConvert.DeserializeObject <ChannelLoginInfo>(storedChannelLoginData);
                if (loginInfo != null)
                {
                    channel.LoginInfo = loginInfo;
                }
            }

            if ((channel.CredentialsType != ChannelCredentialsType.Anonymous) && (accountViewModel.UserInfo != null) && !string.IsNullOrEmpty(accountViewModel.UserInfo.Email))
            {
                if (channel.LoginInfo == null)
                {
                    channel.LoginInfo = new ChannelLoginInfo();
                }

                if (string.IsNullOrEmpty(channel.LoginInfo.Username))
                {
                    channel.LoginInfo.Username = accountViewModel.UserInfo.Email;
                }
            }
        }
Exemplo n.º 3
0
        private async Task loadCableProviders(ChannelEx channel)
        {
            if (channel != null && channel.CredentialsType == ChannelCredentialsType.UsernamePasswordServiceProvider)
            {
                if (channel.LoginInfo != null && channel.LoginInfo.CableProviders != null &&
                    channel.LoginInfo.CableProviders.Any())
                {
                    if (!string.IsNullOrEmpty(channel.LoginInfo.ProviderCode))
                    {
                        var selectedCableProvider =
                            channel.LoginInfo.CableProviders.FirstOrDefault(
                                c => c.Code == channel.LoginInfo.ProviderCode);
                        if (selectedCableProvider != null)
                        {
                            channel.LoginInfo.SelectedCableProviderIndex =
                                channel.LoginInfo.CableProviders.IndexOf(selectedCableProvider);
                        }
                    }

                    return;
                }

                try
                {
                    IsLoading = true;
                    await mediaContentViewModel.LoadCableProviders(channel);
                }
                finally
                {
                    IsLoading = false;
                }
            }
        }