Exemple #1
0
 public static void ClearMusicFilesAll()
 {
     LocalTracks.Clear();
     FilteredLocalTracks.Clear();
     SpotifyTracks.Clear();
     FilteredSpotifyTracks.Clear();
 }
Exemple #2
0
        public static void AddMusicFileLocal(SupportedFileExtension ext, string path)
        {
            if (path == null)
            {
                throw new ArgumentNullException(nameof(path), $"Cannot add new music file, since path is null.");
            }
            if (path.Length < 8) // "C:\x.abc" is 8 characters long
            {
                throw new ArgumentException("Cannot add new music file, path is too short.", nameof(path));
            }

            try
            {
                ITaggingService             taggingService = DependencyInjector.GetService <ITaggingService>();
                Dictionary <string, object> tagData        = taggingService.Read(path, new List <string>()
                {
                    ext.ToString()
                });
                MetaData trackData = UtilityHelper.FormatMetaData(tagData);

                TrackLocal track = new TrackLocal(new MusicFileProperties(path), trackData);
                LocalTracks.Add(track);
                FilteredLocalTracks.Add(track);
            }
            catch (Exception) // TODO: more polished exception handling
            {
                UtilityHelper.ShowExceptionDialog(
                    "File reading error",
                    "File reading error happened while trying to parse a music file from local directory. This file will be omitted from Tracklist!",
                    $"File location: {path}");
            }
        }
Exemple #3
0
        public static void RemoveMusicFileLocal(string path)
        {
            TrackLocal itemToRemove = LocalTracks.SingleOrDefault(t => t.MusicFileProperties.Path == path);

            if (itemToRemove != null)
            {
                LocalTracks.Remove(itemToRemove);
                FilteredLocalTracks.Remove(itemToRemove);
            }
        }
Exemple #4
0
        public void PopulateMatch()
        {
            if (AlbumRelease != null)
            {
                LocalTracks = LocalTracks.Concat(ExistingTracks).DistinctBy(x => x.Path).ToList();
                foreach (var localTrack in LocalTracks)
                {
                    localTrack.Release = AlbumRelease;
                    localTrack.Album   = AlbumRelease.Album.Value;
                    localTrack.Artist  = localTrack.Album.Artist.Value;

                    if (TrackMapping.Mapping.ContainsKey(localTrack))
                    {
                        var track = TrackMapping.Mapping[localTrack].Item1;
                        localTrack.Tracks = new List <Track> {
                            track
                        };
                        localTrack.Distance = TrackMapping.Mapping[localTrack].Item2;
                    }
                }
            }
        }
Exemple #5
0
 public override string ToString()
 {
     return("[" + string.Join(", ", LocalTracks.Select(x => Path.GetDirectoryName(x.Path)).Distinct()) + "]");
 }