private IEnumerable <SeasonsEnumeration> EnumerateSeasons(TitlePathModel titlePathModel, string directory)
 {
     foreach (var subDirectory in _fileSystem.Directory.EnumerateDirectories(directory))
     {
         yield return(new SeasonsEnumeration()
         {
             Location = BuildUri(titlePathModel, subDirectory),
             Titles = EnumerateTitles(titlePathModel, subDirectory).ToArray()
         });
     }
 }
 private IEnumerable <GenresEnumeration> EnumerateGenres(TitlePathModel titlePathModel)
 {
     foreach (var subDirectory in _fileSystem.Directory.EnumerateDirectories(titlePathModel.Path))
     {
         yield return(new GenresEnumeration()
         {
             Origin = titlePathModel,
             Location = BuildUri(titlePathModel, subDirectory),
             Seasons = EnumerateSeasons(titlePathModel, subDirectory).ToArray()
         });
     }
 }
        private IEnumerable <TitleEnumeration> EnumerateTitles(TitlePathModel titlePathModel, string directory)
        {
            var patterns = new string[]
            {
                "*.m4v"
            };

            foreach (var subDirectory in patterns.SelectMany(e => _fileSystem.Directory.EnumerateFiles(directory, e)))
            {
                yield return(new TitleEnumeration()
                {
                    Location = BuildUri(titlePathModel, subDirectory),
                });
            }
        }
 private static string BuildUri(TitlePathModel pathModel, string location)
 {
     return($"{pathModel.Id}://{location.Remove(0, pathModel.Path.Length + 1)}");
 }