Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }