コード例 #1
0
        public iTunesFile CurrentTrack()
        {
            if ((CurrentTrackIndex < 1) || (CurrentTrackIndex > Tracks.Count))
                CurrentTrackIndex = 1;

            var track = new iTunesFile();
            return track.Load(CurrentTrackIndex, Tracks) ? track : null;
        }
コード例 #2
0
        private void UpdateWindowsFile(iTunesFile iTunesTrack, WindowsFile windowsFile)
        {
            //windowsFile.OriginalTitle = windowsFile.Title;
            //windowsFile.OriginalArtist = windowsFile.Artist;
            //windowsFile.OriginalAlbum = windowsFile.Album;
            windowsFile.OriginalRating = windowsFile.Rating;

            var newWindowsRating = RatingConverter.AsWindowsRating(iTunesTrack.Rating);
            if (windowsFile.OriginalRating == newWindowsRating)
                return;

            //windowsFile.Title = iTunesTrack.Title;
            //windowsFile.Artist = iTunesTrack.Artist;
            //windowsFile.Album = iTunesTrack.Album;
            windowsFile.Rating = newWindowsRating;

            ValidateFileUpdate(newWindowsRating, iTunesTrack, windowsFile);
        }
コード例 #3
0
        private void ValidateTrackUpdate(int expectedRating, iTunesFile iTunesTrack, WindowsFile windowsFile)
        {
            var actualRating = iTunesTrack.Rating;
            if (actualRating == expectedRating)
            {
                System.Console.WriteLine(
                    string.Format("Updated:{0}=>{1}\tSource:{2}\t{3}[{4}] : {5}",
                        iTunesTrack.OriginalSimpleRating, iTunesTrack.SimpleRating, windowsFile.SimpleRating,
                        iTunesTrack.Artist, iTunesTrack.Album, iTunesTrack.Title));

                UpdatedTracks++;
            }  else {
                var colour = System.Console.ForegroundColor;
                System.Console.ForegroundColor = ConsoleColor.Yellow;
                System.Console.WriteLine(
                    string.Format("Failure:{0}=>{1}\tSource:{2}\t{3}[{4}] : {5}",
                        iTunesTrack.OriginalSimpleRating, iTunesTrack.SimpleRating, windowsFile.SimpleRating,
                        iTunesTrack.Artist, iTunesTrack.Album, iTunesTrack.Title));
                System.Console.ForegroundColor = colour;

                ErrorTracks++;
            }
        }
コード例 #4
0
        private void RenameWindowsFiles(iTunesFile iTunesTrack, WindowsFile windowsFile)
        {
            var originalLocation = System.IO.Path.GetFileName(iTunesTrack.Location);
            iTunesTrack.Location = windowsFile.UpdateFileName();
            var updatedLocation = System.IO.Path.GetFileName(iTunesTrack.Location);

            if (updatedLocation != originalLocation)
            {
                RenamedTracks++;
                Console.WriteLine(string.Format("Renamed: {0} => {1}", originalLocation, updatedLocation));
            }
        }
コード例 #5
0
        private void UpdateiTunesTrack(iTunesFile iTunesTrack, WindowsFile windowsFile)
        {
            //iTunesTrack.OriginalTitle = iTunesTrack.Title;
            //iTunesTrack.OriginalAlbum = iTunesTrack.Album;
            //iTunesTrack.OriginalArtist = iTunesTrack.Artist;
            iTunesTrack.OriginalRating = iTunesTrack.Rating;

            var newiTunesRating = RatingConverter.AsiTunesRating(windowsFile.Rating);
            if (iTunesTrack.OriginalRating == newiTunesRating)
                return;

            //iTunesTrack.Title = windowsFile.Title;
            //iTunesTrack.Album = windowsFile.Album;
            //iTunesTrack.Artist = windowsFile.Artist;
            iTunesTrack.Rating = newiTunesRating;
            ValidateTrackUpdate(newiTunesRating, iTunesTrack, windowsFile);
        }
コード例 #6
0
        private void MissingLocation(iTunesManager manager, iTunesFile iTunesTrack)
        {
            if (!_options.LogInformationMessages)
                return;

            System.Console.ForegroundColor = InformationColour;
            System.Console.WriteLine(string.Format("Removed Track from iTunes (Invalid Location)\t{0}[{1}] : {2}",
                iTunesTrack.Artist, iTunesTrack.Album, iTunesTrack.Title));
            System.Console.ForegroundColor = _defaultColour;

            iTunesTrack.RemoveTrack();
            manager.CurrentTrackIndex--;
        }
コード例 #7
0
        private bool IsTrackValid(iTunesManager manager, iTunesFile iTunesTrack)
        {
            if (null == iTunesTrack)
            {
                SkippedTracks++;
                InvalidIndex(manager.CurrentTrackIndex);
                return false;
            }

            if (!iTunesTrack.IsValidKind())
            {
                SkippedTracks++;
                InvalidTrackKind(iTunesTrack);
                return false;
            }

            if (!iTunesTrack.HasLocation())
            {
                MissingLocation(manager, iTunesTrack);
                return false;
            }

            if (!iTunesTrack.IsValidLocation())
            {
                SkippedTracks++;
                InvalidLocation(manager, iTunesTrack);
                return false;
            }

            if (!iTunesTrack.IsValidExtention())
            {
                SkippedTracks++;
                InvalidExtention(iTunesTrack);
                return false;
            }

            return true;
        }
コード例 #8
0
        private void InvalidTrackKind(iTunesFile iTunesTrack)
        {
            if (!_options.LogWarningMessages)
                return;

            System.Console.ForegroundColor = WarningColour;
            System.Console.WriteLine(string.Format("Skipping\tInvalid Track Kind:{0}", iTunesTrack.Kind));
            System.Console.ForegroundColor = _defaultColour;
        }
コード例 #9
0
 private void DisplayFileInformaiton(iTunesFile iTunesTrack, WindowsFile windowsFile)
 {
     System.Console.WriteLine(
             string.Format("Windows:{0}\tiTunes:{1}\t{2} [{3}] - {4}",
                 windowsFile.SimpleRating, iTunesTrack.SimpleRating,
                 iTunesTrack.Artist, iTunesTrack.Album, iTunesTrack.Title));
 }
コード例 #10
0
        private void DeleteTrackAndFile(iTunesManager manager, iTunesFile iTunesTrack)
        {
            var location = iTunesTrack.Location;

            var deleted = !System.IO.File.Exists(location);
            if (!deleted) deleted = DeleteWindowsFile(location);

            if (!deleted) return;
            iTunesTrack.RemoveTrack();

            System.Console.WriteLine(string.Format("Deleted:\t{0}", location));
            manager.CurrentTrackIndex--;
            DeletedTracks++;
        }