private async Task<LiveTvServiceInfo> GetServiceInfo(ILiveTvService service, CancellationToken cancellationToken) { var info = new LiveTvServiceInfo { Name = service.Name }; try { var statusInfo = await service.GetStatusInfoAsync(cancellationToken).ConfigureAwait(false); info.Status = statusInfo.Status; info.StatusMessage = statusInfo.StatusMessage; info.Version = statusInfo.Version; info.HasUpdateAvailable = statusInfo.HasUpdateAvailable; info.HomePageUrl = service.HomePageUrl; info.Tuners = statusInfo.Tuners.Select(i => { string channelName = null; if (!string.IsNullOrEmpty(i.ChannelId)) { var internalChannelId = _tvDtoService.GetInternalChannelId(service.Name, i.ChannelId); var channel = GetInternalChannel(internalChannelId); channelName = channel == null ? null : channel.Name; } return _tvDtoService.GetTunerInfoDto(service.Name, i, channelName); }).ToList(); } catch (Exception ex) { _logger.ErrorException("Error getting service status info from {0}", ex, service.Name ?? string.Empty); info.Status = LiveTvServiceStatus.Unavailable; info.StatusMessage = ex.Message; } return info; }
public LiveTvInfo() { Services = new LiveTvServiceInfo[] { }; EnabledUsers = new string[] { }; }
public LiveTvInfo() { Services = new LiveTvServiceInfo[] { }; EnabledUsers = Array.Empty <string>(); }