/// <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); }
/// <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(); }