public async Task <IEnumerable <ChannelInfo> > GetChannels(CancellationToken cancellationToken) { ChannelList = new List <ChannelInfo>(); XmlElement root = await DVBViewerAPI.getChannels(); XmlNodeList channelNodes = root.SelectNodes("//channels/root/group/channel"); var items = new List <ChannelInfo>(); for (int i = 0; i < channelNodes.Count; i++) { var item = new ChannelInfo { Name = channelNodes[i].Attributes["name"].Value, ImageUrl = getWebUrl() + "/" + channelNodes[i].InnerText, Number = channelNodes[i].Attributes["nr"].Value.ToString(), Id = channelNodes[i].Attributes["nr"].Value.ToString() }; items.Add(item); } ChannelList = items.ToList(); return(ChannelList); }
public async Task <IEnumerable <ProgramInfo> > getEPGList(string channelNumber) { try { XmlElement epgData = await DVBViewerAPI.getEPGData(await getepgID(channelNumber)); if (epgData == null) { _logger.Error("No EPG Data"); } else { XmlNodeList epgList = epgData.SelectNodes("//programme"); programsInfo = new List <ProgramInfo>(); var items = new List <ProgramInfo>(); for (int i = 0; i < epgList.Count; i++) { var item = new ProgramInfo { ChannelId = channelNumber, Id = epgData.GetElementsByTagName("eventid").Item(i).Value.ToString(), Name = epgData.GetElementsByTagName("title").Item(i).Value.ToString(), Overview = epgData.GetElementsByTagName("event").Item(i).Value.ToString(), StartDate = Helpers.convertToDateTime(epgList[i].Attributes["start"].Value.ToString()), EndDate = Helpers.convertToDateTime(epgList[i].Attributes["stop"].Value.ToString()) }; items.Add(item); } programsInfo = items.ToList(); return(programsInfo); } } catch (Exception ex) { _logger.Error("Can't Retrieve EPG List from Server", ex); } return(null); }
private async Task <string> getepgID(string channelNumber) { try { XmlElement root = await DVBViewerAPI.getChannels(); XmlNodeList channelNodes = root.SelectNodes("//channels/root/group/channel"); string epgID; for (int i = 0; i < channelNodes.Count; i++) { if (channelNodes[i].Attributes["nr"].Value.ToString() == channelNumber) { return(epgID = channelNodes[i].Attributes["EPGID"].Value.ToString()); } } } catch { _logger.Error("Can't Retrieve Channel List for EPG"); } return(null); }