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;
            }
        }