Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }