/// <summary> /// Sorts the items. /// </summary> /// <param name="folders">The full folder list</param> /// <param name="parentId">The current parent id</param> /// <returns>The structure</returns> private Models.MediaStructure Sort(IEnumerable <MediaFolder> folders, IList <FolderCount> count, Guid?parentId = null, int level = 0) { var rootCount = count.FirstOrDefault(c => c.FolderId == null)?.Count; var totalCount = count.Sum(c => c.Count); var result = new Models.MediaStructure { MediaCount = rootCount.HasValue ? rootCount.Value : 0, TotalCount = totalCount }; var mediaFolders = folders as MediaFolder[] ?? folders.ToArray(); foreach (var folder in mediaFolders.Where(f => f.ParentId == parentId).OrderBy(f => f.Name)) { var item = Module.Mapper.Map <MediaFolder, Models.MediaStructureItem>(folder); var folderCount = count.FirstOrDefault(c => c.FolderId == folder.Id)?.Count; item.Level = level; item.Items = Sort(mediaFolders, count, folder.Id, level + 1); item.FolderCount = folders.Count(f => f.ParentId == item.Id); item.MediaCount = folderCount.HasValue ? folderCount.Value : 0; result.Add(item); } return(result); }
/// <summary> /// Sorts the items. /// </summary> /// <param name="folders">The full folder list</param> /// <param name="parentId">The current parent id</param> /// <returns>The structure</returns> private Models.MediaStructure Sort(IEnumerable <MediaFolder> folders, string parentId = null, int level = 0) { var result = new Models.MediaStructure(); foreach (var folder in folders.Where(f => f.ParentId == parentId).OrderBy(f => f.Name)) { var item = App.Mapper.Map <MediaFolder, Models.MediaStructureItem>(folder); item.Level = level; item.Items = Sort(folders, folder.Id, level + 1); result.Add(item); } return(result); }
/// <summary> /// Sorts the items. /// </summary> /// <param name="folders">The full folder list</param> /// <param name="parentId">The current parent id</param> /// <returns>The structure</returns> private Models.MediaStructure Sort(IEnumerable <MediaFolder> folders, Guid?parentId = null, int level = 0) { var result = new Models.MediaStructure(); var mediaFolders = folders as MediaFolder[] ?? folders.ToArray(); foreach (var folder in mediaFolders.Where(f => f.ParentId == parentId).OrderBy(f => f.Name)) { var item = Module.Mapper.Map <MediaFolder, Models.MediaStructureItem>(folder); item.Level = level; item.Items = Sort(mediaFolders, folder.Id, level + 1); result.Add(item); } return(result); }