Example #1
0
        /// <summary>
        /// Gets the breadcrumb list of the folders from the selected folder id
        /// </summary>
        /// <param name="structure">The complete media folder structure</param>
        /// <param name="folderId">The folder id</param>
        /// <returns></returns>
        public async Task <List <MediaFolderSimple> > GetFolderBreadCrumb(MediaStructure structure, Guid?folderId)
        {
            var folders = await GetFolderBreadCrumbReversed(structure, folderId);

            folders.Reverse();
            return(folders);
        }
Example #2
0
        /// <summary>
        /// Gets the breadcrumb list of the folders from the selected folder id in reverse order with child first in list
        /// </summary>
        /// <param name="structure">The complete media folder structure</param>
        /// <param name="folderId">The folder id</param>
        /// <returns></returns>
        private async Task <List <MediaFolderSimple> > GetFolderBreadCrumbReversed(MediaStructure structure, Guid?folderId)
        {
            var folders = new List <MediaFolderSimple>();

            if (!folderId.HasValue)
            {
                return(folders);
            }

            foreach (var item in structure)
            {
                if (item.Id == folderId)
                {
                    folders.Add(new MediaFolderSimple()
                    {
                        Id = item.Id, Name = item.Name
                    });
                    return(folders);
                }

                if (item.Items.Count > 0)
                {
                    folders = await GetFolderBreadCrumbReversed(item.Items, folderId);

                    if (folders.Count > 0)
                    {
                        folders.Add(new MediaFolderSimple()
                        {
                            Id = item.Id, Name = item.Name
                        });
                        return(folders);
                    }
                }
            }
            return(folders);
        }
 /// <summary>
 /// Default constructor.
 /// </summary>
 public MediaListModel()
 {
     Media   = new List <Data.Media>();
     Folders = new MediaStructure();
 }