public async void RefreshConfigData(CancellationToken cancellationToken) { var config = Plugin.Instance.Configuration; if (config.TunerHostsConfiguration != null) { _tunerServer = TunerHostFactory.CreateTunerHosts(config.TunerHostsConfiguration, _logger, _jsonSerializer, _httpClient); for (var i = 0; i < _tunerServer.Count(); i++) { await _tunerServer[i].GetDeviceInfo(cancellationToken); config.TunerHostsConfiguration[i].ServerId = _tunerServer[i].HostId; } } if (FirstRun) { seriesTimers = GetSeriesTimerData(DataPath, _xmlSerializer); InitializeTimer(GetTimerData(DataPath, _xmlSerializer)); } FirstRun = false; _tvGuide = new EPGProvider.SchedulesDirect(config.username, config.hashPassword, config.lineup, _logger, _jsonSerializer, _httpClient); config.avaliableLineups = await _tvGuide.getLineups(cancellationToken); if (_tvGuide.badPassword) { config.hashPassword = ""; } config.headends = await _tvGuide.getHeadends(config.zipCode, cancellationToken); Plugin.Instance.SaveConfiguration(); }
private async Task AddLineupIfNeeded(PluginConfiguration config, CancellationToken cancellationToken) { if (string.IsNullOrWhiteSpace(config.lineup.Id)) { return; } var lineups = await _tvGuide.getLineups(cancellationToken).ConfigureAwait(false); if (!lineups.Any(i => string.Equals(i, config.lineup.Id, StringComparison.OrdinalIgnoreCase))) { try { await _tvGuide.addHeadEnd(config.lineup.Id, cancellationToken).ConfigureAwait(false); } catch (Exception e) { _logger.Debug("Error adding headend", e); } } }