StreetFoo.Client.ReportImageCacheManager.GetLocalImageUriAsync C# (CSharp) Method

GetLocalImageUriAsync() private method

private GetLocalImageUriAsync ( ReportViewItem viewItem ) : Task
viewItem ReportViewItem
return Task
        internal async Task<string> GetLocalImageUriAsync(ReportViewItem viewItem)
        {
            var cacheFolder = await this.GetCacheFolderAsync();

            // build a path based on the native id...
            var filename = GetCacheFilename(viewItem);
            StorageFile cacheFile = null;
            try
            {
                cacheFile = await cacheFolder.GetFileAsync(filename);
            }
            catch (FileNotFoundException ex)
            {
                SinkWarning(ex);
            }

            // did we get one?
            if (cacheFile != null)
            {
                Debug.WriteLine(string.Format("Cache image for '{0}' was found locally...", viewItem.NativeId));
                return CalculateLocalImageUrl(viewItem);
            }
            else
            {
                Debug.WriteLine(string.Format("Cache image for '{0}' was not found locally...", viewItem.NativeId));
                return null;
            }
        }
    }

Usage Example

Example #1
0
        internal async Task InitializeAsync(ReportImageCacheManager manager)
        {
            // get...
            var imageUrl = await manager.GetLocalImageUriAsync(this);

            if (!(string.IsNullOrEmpty(imageUrl)))
            {
                // set it up...
                this.ImageUri = imageUrl;
            }
            else
            {
                // enqueue an image...
                manager.EnqueueImageDownload(this);
            }
        }