private InternalItemsQuery GetItemsQuery(GetQueryFiltersLegacy request, User user)
        {
            var query = new InternalItemsQuery
            {
                User                   = user,
                MediaTypes             = request.GetMediaTypes(),
                IncludeItemTypes       = request.GetIncludeItemTypes(),
                Recursive              = true,
                EnableTotalRecordCount = false,
                DtoOptions             = new Controller.Dto.DtoOptions
                {
                    Fields         = new ItemFields[] { ItemFields.Genres, ItemFields.Tags },
                    EnableImages   = false,
                    EnableUserData = false
                }
            };

            return(query);
        }
        public object Get(GetQueryFiltersLegacy request)
        {
            var parentItem = string.IsNullOrEmpty(request.ParentId) ? null : _libraryManager.GetItemById(request.ParentId);
            var user       = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;

            if (string.Equals(request.IncludeItemTypes, "BoxSet", StringComparison.OrdinalIgnoreCase) ||
                string.Equals(request.IncludeItemTypes, "Playlist", StringComparison.OrdinalIgnoreCase) ||
                string.Equals(request.IncludeItemTypes, typeof(Trailer).Name, StringComparison.OrdinalIgnoreCase) ||
                string.Equals(request.IncludeItemTypes, "Program", StringComparison.OrdinalIgnoreCase))
            {
                parentItem = null;
            }

            var item = string.IsNullOrEmpty(request.ParentId) ?
                       user == null ? _libraryManager.RootFolder : _libraryManager.GetUserRootFolder() :
                       parentItem;

            var result = ((Folder)item).GetItemList(GetItemsQuery(request, user));

            var filters = GetFilters(result);

            return(ToOptimizedResult(filters));
        }