Audioquarium.Itemsource.LoadSongs C# (CSharp) Method

LoadSongs() public static method

public static LoadSongs ( string path ) : int
path string
return int
        public static int LoadSongs(string path)
        {
            var watch = new Stopwatch();
              watch.Start();

              SongLibrary?.Clear();

              var songCount = 0;
              var files = new List<string>();

              foreach (var t in Filetypes)
            files.AddRange(GetFiles(path, t));

              foreach (var file in files)
              {
            try
            {
              var tagFile = File.Create(file);

              _songName = tagFile.Tag.Title ?? Path.GetFileNameWithoutExtension(file);
              _songArtist = tagFile.Tag.FirstAlbumArtist ?? tagFile.Tag.Performers[0];

              SongLibrary?.Add(new Songs
              {
            Name = _songName,
            Artist = _songArtist,
            Album = tagFile.Tag.Album,
            Length = tagFile.Properties.Duration.ToString(@"mm\:ss"),
            Track = tagFile.Tag.Track.ToString(),
            FileName = tagFile.Name,
            AltName = Path.GetFileNameWithoutExtension(file)
              });
              songCount++;
            }
            catch
            {
              Console.WriteLine(@"Metadata could not be created for " + file);
            }
              }

              watch.Stop();
              Console.WriteLine(songCount + @" songs loaded in " + watch.ElapsedMilliseconds + @" milliseconds");
              return songCount;
        }

Usage Example

Beispiel #1
0
        public void Load()
        {
            var song = Itemsource.SongLibrary;

            if (Settings.Default.MusicDirectory != "") // Check if music directory is empty
            {
                _songCount           = Itemsource.LoadSongs(Settings.Default.MusicDirectory);
                SongGrid.ItemsSource = Itemsource.SongLibrary;
                SongGrid.Items.Refresh();
                NoLoadLabel.Visibility = Visibility.Collapsed;
            }
            else // Empty setting load nothing (saves a load error)
            {
                NoLoadLabel.Visibility = Visibility.Visible;
                SongGrid.ItemsSource   = null;
            }
            // Get the color they had
            ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent(Settings.Default.PlayerColor),
                                        ThemeManager.GetAppTheme("BaseDark"));
            Colors.SelectedValue = Settings.Default.PlayerColor;    // Color setting set to color (dictionaries.s)
            Directory1Text.Text  = Settings.Default.MusicDirectory; // Music directory set to music directory (or empty string)

            var albums  = song.GroupBy(x => x.Album).Select(x => x.First()).ToList();
            var artists = Itemsource.SongLibrary.GroupBy(x => x.Artist).Select(x => x.First()).ToList();

            foreach (var item in albums)
            {
                _albumCount++;
            }
            foreach (var item in artists)
            {
                _artistCount++;
            }
            Console.WriteLine("Loaded " + _albumCount + " albums from " + _artistCount + " artists");
        }