public static void SyncMusicBeeHistoryToITunes(this IITTrack itTrack, MusicBeeFile mbFile) { itTrack.RepeatTrackOperationUntilNoConflicts(t => t.PlayedDate = mbFile.LastPlayed.MusicBeeToITunes()); itTrack.RepeatTrackOperationUntilNoConflicts(t => t.PlayedCount = mbFile.PlayCount); itTrack.RepeatTrackOperationUntilNoConflicts(t => t.SetMusicBeeRating(mbFile.Rating)); if (itTrack.Kind == ITTrackKind.ITTrackKindFile) { itTrack.RepeatTrackOperationUntilNoConflicts(t => ((IITFileOrCDTrack)t).SkippedCount = mbFile.SkipCount); itTrack.RepeatTrackOperationUntilNoConflicts(t => ((IITFileOrCDTrack)t).SetMusicBeeAlbumRating(mbFile.RatingAlbum)); } }
public static void SyncITunesHistoryToMusicBee(this IITFileOrCDTrack track, MusicBeeFile file) { var mbLastPlayed = file.LastPlayed; var itLastPlayed = track.PlayedDate.AddSeconds(-track.PlayedDate.Second); if (mbLastPlayed == null || mbLastPlayed < itLastPlayed) { file.PlayCount = track.PlayedCount; file.LastPlayed = track.PlayedDate.ToUniversalTime(); file.SkipCount = track.SkippedCount; file.Rating = track.MusicBeeRating(); file.RatingAlbum = track.MusicBeeAlbumRating(); file.CommitChanges(); Plugin.MbApiInterface.MB_RefreshPanels(); } }