Пример #1
0
        public static IEnumerable <ArtistFolder> GetArtistFolders(this MusicStyles musicStyle, MusicOptions musicOptions, string selectedRootFolder = null)
        {
            var folderList = new List <ArtistFolder>();

            var style = MusicMetaDataMethods.GetStyleInfo(musicOptions, musicStyle);

            if (style != null)
            {
                var list = new List <string>();
                //foreach (var rootFolder in new MusicSources(musicOptions).Where(s => !s.IsGenerated).OrderBy(s => s.DiskRoot))
                foreach (var rootFolder in new MusicSources(musicOptions))
                {
                    foreach (var setting in style.Settings)
                    {
                        var path = Path.Combine(rootFolder.DiskRoot, setting.Path);
                        if (selectedRootFolder == null || path.StartsWithIgnoreAccentsAndCase(selectedRootFolder))
                        {
                            if (Directory.Exists(path))
                            {
                                list.AddRange(Directory.EnumerateDirectories(path).Select(d => Path.GetFileName(d)));
                            }
                        }
                    }
                }
                var list2 = list.Except(new string[] { "collections", "$portraits" }, StringComparer.CurrentCultureIgnoreCase);
                if (style.Filter)
                {
                    list2 = list2.Intersect(style.IncludeArtists, new AccentAndCaseInsensitiveComparer());
                }
                list2      = list2.Distinct(new AccentAndCaseInsensitiveComparer()).OrderBy(x => x);
                folderList = list2.Select(n => new ArtistFolder(musicOptions, musicStyle, n)).ToList();
            }
            return(folderList);
        }
Пример #2
0
 public OpusFolderCollection GetOpusFolders(string requiredPrefix = null)
 {
     return(new OpusFolderCollection(new MusicFolderInformation
     {
         //IsCollection = false,
         MusicOptions = musicOptions,
         MusicStyle = musicStyle,
         Paths = MusicMetaDataMethods.GetPathDataList(musicOptions, musicStyle, artistName),
         IncludeSingles = musicStyle == MusicStyles.Popular, // causes the collection to include singles
         RequiredPrefix = requiredPrefix
     }));
 }
Пример #3
0
 public OpusFolderCollection GetOpusFolders(string requiredPrefix = null)
 {
     return(new OpusFolderCollection(new MusicFolderInformation
     {
         //sCollection = true,
         MusicOptions = musicOptions,
         MusicStyle = musicStyle,
         Paths = MusicMetaDataMethods.GetPathDataList(musicOptions, musicStyle, "collections"),
         IncludeSingles = false,
         RequiredPrefix = requiredPrefix
     }));
 }