Пример #1
0
        protected void retrieveList(String _containerId, String _parentListId = "", Boolean _useCache = true, MediaItem _parentMediaItem = null)
        {
            UPNPMediaListBrowse mediaList;
            UPNPMediaListBrowse parentList = (UPNPMediaListBrowse)this.getList(_parentListId);
            String listId = this.containerIdToListId(_containerId, mainContentType);

            // try to get list from cache, we do not cache search results (isSearchListChild)!
            if (_useCache)
            {
                mediaList = (UPNPMediaListBrowse)this.getList(listId);
                if (mediaList != null && !mediaList.isSearchChild)
                {
                    currentContainerId = _containerId;
                    currentListId      = mediaList.listId;
                    this.eventListDataReady(mediaList.listId);
                }
            }
            else
            {
                if (lists.ContainsKey(listId))
                {
                    lists.Remove(listId);
                }
            }

            string tempListPath = "";

            if (!String.IsNullOrWhiteSpace(_parentListId))
            {
                tempListPath = parentList.path;
            }
            if (_parentMediaItem != null)
            {
                if (!String.IsNullOrEmpty(tempListPath))
                {
                    tempListPath += "/";
                }
                tempListPath += _parentMediaItem.text;
            }

            // if there is no list in cache, then retrieve list
            mediaList = (UPNPMediaListBrowse)this.createListObject(listId);
            mediaList.listDataReady += listDataReadySink;
            mediaList.parentListId   = _parentListId;
            mediaList.path           = tempListPath;
            if (parentList != null)
            {
                mediaList.isSearchChild = parentList.isSearchChild;
            }
            lists.Add(mediaList.listId, mediaList);
            mediaList.retrieveListByContainerId(_containerId);
        }