public async Task <object> Get(Getrailers request) { var user = request.UserId.HasValue ? _userManager.GetUserById(request.UserId.Value) : null; var result = await GetAllTrailers(user).ConfigureAwait(false); IEnumerable <BaseItem> items = result.Items; // Apply filters // Run them starting with the ones that are likely to reduce the list the most foreach (var filter in request.GetFilters().OrderByDescending(f => (int)f)) { items = ItemsService.ApplyFilter(items, filter, user, _userDataRepository); } items = _libraryManager.Sort(items, user, request.GetOrderBy(), request.SortOrder ?? SortOrder.Ascending); var itemsArray = items.ToList(); var pagedItems = ApplyPaging(request, itemsArray); var fields = request.GetItemFields().ToList(); var returnItems = pagedItems.Select(i => _dtoService.GetBaseItemDto(i, fields, user)).ToArray(); return(new ItemsResult { TotalRecordCount = itemsArray.Count, Items = returnItems }); }