Example #1
0
        public void CanLoadLastFMSingleMock()
        {
            var mock  = new Mock <ILastFM>();
            var mock2 = new Mock <IRevTrack>();

            mock2.SetupGet(x => x.PlayCount).Returns(50);
            IRevTrack track = mock2.Object;

            mock.Setup(m => m.GetTrack("Billy Bragg", "To Have and to Have Not")).Returns(track);

            var lib    = mock.Object;
            var track2 = lib.GetTrack("Billy Bragg", "To Have and to Have Not");

            Assert.IsNotNull(track2);
            Assert.That(track2.PlayCount == 50);
        }
Example #2
0
        private static void UpdateTrackCountAndDate(IRevTrack playCount, IITTrack track, DateTime?playDate)
        {
            if (playCount.PlayCount > track.PlayedCount)
            {
                track.PlayedCount = playCount.PlayCount.Value;
            }

            bool playDateError     = false;
            var  itunesPlayDateUtc = new DateTime(2006, 1, 1);

            try
            {
                itunesPlayDateUtc = track.PlayedDate.ToUniversalTime();
            }
            catch (Exception e)
            {
                playDateError = true;
                Console.WriteLine("Play date error: " + e);
            }

            if (playDateError || playDate.GetValueOrDefault().ToUniversalTime() > itunesPlayDateUtc)
            {
                // Weird output error:
                //     The Farmer's Frolic : Last.FM: 11/29/2012 10:35:20 PM; iTunes: 11/29/2012 11:37:55 PM

                Console.WriteLine($"{track.Name} : Last.FM: {playDate.GetValueOrDefault().ToUniversalTime()}; iTunes: {itunesPlayDateUtc}");

                // The Getter for iTunes converts to local, but the setter expects UTC.
                track.PlayedDate = playDate.GetValueOrDefault().ToUniversalTime();
            }

            TrackRecord.Instance.Set(new RTrack
            {
                Album     = track.Album,
                Artist    = track.Artist,
                Song      = track.Name,
                PlayCount = track.PlayedCount,
                PlayDate  = track.PlayedDate
            }, (playDate ?? DateTime.Now).ToUniversalTime());
        }
Example #3
0
 public void Set(IRevTrack track, DateTime modifiedDate)
 {
     lock (_lock)
     {
         if (!Contains(track.Song, track.Album))
         {
             _records.Add(new TrackTuple(track, modifiedDate));
         }
         else if (!IsCurrent(track.Song, track.Album, modifiedDate))
         {
             for (int i = 0; i < _records.Count; i++)
             {
                 var record = _records[i];
                 if (record.Track.Song == track.Song && record.Track.Album == track.Album)
                 {
                     _records[i] = new TrackTuple(track, modifiedDate);
                     break;
                 }
             }
         }
     }
 }