public override Album FindByAlbumPath(Album album, string albumPath) { if (albumPath == Album.RootAlbumId) { return album; } if (albumPath.StartsWith(Album.RootAlbumId + Separator)) { albumPath = albumPath.Substring((Album.RootAlbumId + Separator).Length); } string[] albumIds = albumPath.Split(new string[] { Separator }, StringSplitOptions.None) .ToArray(); for (int level = 0; level < albumIds.Length; level++) { string aid = albumIds[level]; album = album.Items .OfType<Album>() .SingleOrDefault(a => a.Id == aid); if (album == null) { return null; } } return album; }
public Uri GetAlbumUri(Album album) { var rootUri = GetApiRootUri(); string albumPath = ConstructAlbumPathSegment(album); var albumUriBuilder = new UriBuilder(rootUri); albumUriBuilder.Path += $"albums/{albumPath}"; return albumUriBuilder.Uri; }
public override string ConstructAlbumPathSegment(Album album) { string path = string.Empty; Album current = album; while (current != null) { if (path != string.Empty) { path = ":" + path; } path = $"{current.Id}" + path; current = current.ParentAlbum; } return path; }
public override AlbumContentItem FindByContentItemId(Album album, string contentItemId) { return album.Items.OfType<AlbumContentItem>() .SingleOrDefault(i => i.Id == contentItemId); }
/// <summary> /// Returns stream with content of thumbnail image for request album item. /// </summary> /// <param name="thumbSize">Max requested thumbnail size.</param> public abstract AlbumItemContentResult GetThumbnail(Album album, string contentItemId, Size thumbSize, bool enforceAspectRatio = true);
/// <summary> /// Returns content with original content for requested item. /// </summary> public abstract AlbumItemContentResult GetOrigContent(Album album, string contentItemId);
public abstract AlbumContentItem FindByContentItemId(Album album, string contentItemId);
public abstract string ConstructAlbumPathSegment(Album album);
public abstract Album FindByAlbumPath(Album album, string albumPath);