private TuneInRadioStations ConvertOutlinesToStations(IEnumerable <OpmlOutline> outlines) { var result = new TuneInRadioStations(); foreach (var outline in outlines) { if (outline.Outlines != null && ("stations".Equals(outline.Key) || "local".Equals(outline.Key))) { var children = ConvertOutlinesToStations(outline.Outlines); result.Stations.AddRange(children.Stations); if (string.IsNullOrEmpty(result.ShowMoreId) && !string.IsNullOrEmpty(children.ShowMoreId)) { result.ShowMoreId = children.ShowMoreId; } } if ("nextStations".Equals(outline.Key) && "link".Equals(outline.Type)) { var hash = GetHash(outline.Url); result.ShowMoreId = hash; _showMoreStations.TryAdd(hash, new Uri(outline.Url)); } if ("audio".Equals(outline.Type) && outline.Formats != null && outline.Formats.Contains("mp3")) { result.Stations.Add(new TuneInRadioStation { Id = outline.GuideId, Name = outline.Text, ImageUrl = outline.Image }); } } return(result); }
private static TuneInRadioStations ConvertOutlinesToStations(IEnumerable<OpmlOutline> outlines) { var result = new TuneInRadioStations(); foreach (var outline in outlines) { if (outline.Outlines != null && ("stations".Equals(outline.Key) || "local".Equals(outline.Key))) { var children = ConvertOutlinesToStations(outline.Outlines); result.Stations.AddRange(children.Stations); if (string.IsNullOrEmpty(result.ShowMoreId) && !string.IsNullOrEmpty(children.ShowMoreId)) { result.ShowMoreId = children.ShowMoreId; } } if ("nextStations".Equals(outline.Key) && "link".Equals(outline.Type)) { var hash = GetHash(outline.Url); result.ShowMoreId = hash; _showMoreStations.TryAdd(hash, new Uri(outline.Url)); } if ("audio".Equals(outline.Type) && outline.Formats != null && outline.Formats.Contains("mp3")) { result.Stations.Add(new TuneInRadioStation { Id = outline.GuideId, Name = outline.Text, ImageUrl = outline.Image }); } } return result; }