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