public override void Initialise(string sortCriteria, uint?offset = null, uint?count = null) { Logger.Debug("MediaServer initialise share containers"); base.Initialise(sortCriteria, offset, count); IDictionary <Guid, Share> shares = GetShares(); IMediaLibrary library = ServiceRegistration.Get <IMediaLibrary>(); BasicContainer parent = new BasicContainer(Id, Client); var items = (from share in shares select new { Item = library.LoadItem(share.Value.SystemId, share.Value.BaseResourcePath, NECESSARY_SHARE_MIA_TYPE_IDS, OPTIONAL_SHARE_MIA_TYPE_IDS), ShareName = share.Value.Name }).ToList(); foreach (var item in items.OrderBy(s => s.ShareName)) { try { if (item.Item != null) { Add((BasicObject)MediaLibraryHelper.InstansiateMediaLibraryObject(item.Item, parent, item.ShareName)); } } catch (Exception ex) { Logger.Error("Media item '{0}' could not be added", ex, item.Item); } } }
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)); } } } }