public AlbumViewModelExtended GetRoot()
        {
            var metadataProvider = _factory.GetMetadataProvider();

            var rootAlbum = metadataProvider.GetRoot();

            var rootAlbumVM = new AlbumViewModelExtended(_albumItemsPathProvider).FillBy2(rootAlbum);

            return DefaultSortAlbum(rootAlbumVM);
        }
        public AlbumViewModelExtended GetAlbum(string albumPath)
        {
            //System.Threading.Thread.Sleep(3000);

            var metadataProvider = _factory.GetMetadataProvider();

            var album = _albumItemsPathProvider.FindByAlbumPath(metadataProvider.GetRoot(), albumPath);

            if (album == null)
            {
                this.ThrowHttpErrorResponseException(HttpStatusCode.NotFound,
                    $"album with id '{albumPath}' was not found");
            }

            var extendedAlbumVM = new AlbumViewModelExtended(_albumItemsPathProvider).FillBy2(album);

            return DefaultSortAlbum(extendedAlbumVM);
        }
        /// <summary>
        /// Sorts album/content items with default order.
        /// Returns the same album reference - for convenience of chaining.
        /// </summary>
        private AlbumViewModelExtended DefaultSortAlbum(AlbumViewModelExtended album)
        {
            album.AlbumItems = album.AlbumItems.OrderBy(x => x.Name).ToList();
            album.ContentItems = album.ContentItems.OrderBy(x => x.Name).ToList();

            return album;
        }