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