示例#1
0
        private async void GetCachedBitmapAsync()
        {
            isWaiting = true;
            WaitCompleted?.Invoke(this, EventArgs.Empty);

            var s = mediaId.ToString();

            if (PictureCache.HasPicture(s))
            {
                var entry = PictureCache.GetPicture(s);

                if (Thumbnail && entry.OriginalPicture.IsThumbnailAvailable)
                {
                    await entry.GetThumbnailAsync();

                    Image = entry.XamlThumbnailBitmap;
                }
                else
                {
                    await entry.GetFullSizeAsync();

                    Image = entry.XamlFullSizeBitmap;
                }
            }
            else
            {
                Image = new BitmapImage(ResourceUriHelper.BuildUri("DefaultArtwork.png"));
                Log.Warning(nameof(CacheImageSource), $"No picture cache entry for {s}");
            }

            isWaiting = false;
            WaitCompleted?.Invoke(this, EventArgs.Empty);
        }
示例#2
0
        protected IEnumerable <LinkDto> CreateLinksForCollection <T>
            (PagedList <T> resources, IResourceParameters parameters)
            where T : AuditableEntity
        {
            var links             = new List <LinkDto>();
            var resourceUriHelper = new ResourceUriHelper(Url);
            var resourceUri       = pagination.CreateResourceUri
                                        (parameters, resourceUriHelper, ResourceUriType.Current);

            links.Add(new LinkDto(resourceUri, "self", "GET"));

            var pagesLinks = pagination.CreatePagesLinks(resources, parameters, resourceUriHelper);

            if (pagesLinks.HasPrevious)
            {
                links.Add(new LinkDto(pagesLinks.Previous, "previousPage", "GET"));
            }

            if (pagesLinks.HasNext)
            {
                links.Add(new LinkDto(pagesLinks.Next, "nextPage", "GET"));
            }

            return(links);
        }
示例#3
0
        private static async void MediaIdPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
        {
            var _this  = (CachedImage)dependencyObject;
            var _value = (string)dependencyPropertyChangedEventArgs.NewValue;

            if (PictureCache.HasPicture(_value))
            {
                var entry = PictureCache.GetPicture(_value);
                if (_this.RenderSize.Width > ThumbnailSize || _this.RenderSize.Height > ThumbnailSize)
                {
                    await entry.GetFullSizeAsync();

                    _this.MainImage.Source = entry.XamlFullSizeBitmap;
                }
                else
                {
                    if (entry.OriginalPicture.IsThumbnailAvailable)
                    {
                        await entry.GetThumbnailAsync();

                        _this.MainImage.Source = entry.XamlThumbnailBitmap;
                    }
                    else
                    {
                        await entry.GetFullSizeAsync();

                        _this.MainImage.Source = entry.XamlFullSizeBitmap;
                    }
                }
            }
            else
            {
                _this.MainImage.Source = new BitmapImage(ResourceUriHelper.BuildUri("DefaultArtwork.png"));
                Log.Warning(nameof(CachedImage), $"No picture cache entry for {_value}");
            }
        }