Пример #1
0
        private async Task <bool> SavedAndSetTrackIdsMatch()
        {
            var cachedTrackIds = await trackIdCache.Load(TrackIdsStoreName, null);

            /// On first load. Theoretically, <see cref="TrackIds"/> should be loaded when the <see cref="AudioFeaturesManager"/> is constructed, but it cannot be awaited there, so we can't guarantee a coherent state when checking cache validity.
            if (!TrackIds.Any() && cachedTrackIds.Any())
            {
                TrackIds = cachedTrackIds;
                return(true);
            }

            return(new HashSet <string>(TrackIds).SetEquals(cachedTrackIds));
        }
Пример #2
0
 protected override async Task <IEnumerable <TrackAudioFeatures> > LoadStorageCache(Action <int, int> progressCallback, string?market = null) =>
 await storageCache.Load(StoreName, progressCallback);