public override void Initialise(string sortCriteria, uint?offset = null, uint?count = null) { base.Initialise(sortCriteria, offset, count); IMediaLibrary library = ServiceRegistration.Get <IMediaLibrary>(); var allowedShares = GetAllowedShares(); List <MediaItem> shares = new List <MediaItem>(); foreach (var share in allowedShares) { if (share.MediaCategories.Any(x => x.Contains("Image"))) { MediaItem item = library.LoadItem(share.SystemId, share.BaseResourcePath, NECESSARY_SHARE_MIA_TYPE_IDS, OPTIONAL_SHARE_MIA_TYPE_IDS, UserId); if (item != null && item.Aspects.ContainsKey(DirectoryAspect.ASPECT_ID)) { shares.Add(item); } } } foreach (MediaItem share in shares.OrderBy(s => MediaItemAspect.TryGetAspect(s.Aspects, MediaAspect.Metadata, out var aspect) ? aspect.GetAttributeValue <string>(MediaAspect.ATTR_SORT_TITLE) : "")) { IList <MediaItem> albums = library.Browse(share.MediaItemId, NECESSARY_SHARE_MIA_TYPE_IDS, OPTIONAL_SHARE_MIA_TYPE_IDS, UserId, false); foreach (MediaItem album in albums) { if (album != null && album.Aspects.ContainsKey(DirectoryAspect.ASPECT_ID)) { Add(new MediaLibraryBrowser(album, Client)); } } } }