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