public object Get(GetPlaylistItems request) { var playlist = (Playlist)_libraryManager.GetItemById(request.Id); var user = request.UserId.HasValue ? _userManager.GetUserById(request.UserId.Value) : null; var items = playlist.GetManageableItems().ToArray(); var count = items.Length; if (request.StartIndex.HasValue) { items = items.Skip(request.StartIndex.Value).ToArray(); } if (request.Limit.HasValue) { items = items.Take(request.Limit.Value).ToArray(); } var dtos = items .Select(i => _dtoService.GetBaseItemDto(i, request.GetItemFields().ToList(), user)) .ToArray(); var result = new ItemsResult { Items = dtos, TotalRecordCount = count }; return(ToOptimizedResult(result)); }
public object Get(GetPlaylistItems request) { var playlist = (Playlist)_libraryManager.GetItemById(request.Id); var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null; var items = playlist.GetManageableItems().ToArray(); var count = items.Length; if (request.StartIndex.HasValue) { items = items.Skip(request.StartIndex.Value).ToArray(); } if (request.Limit.HasValue) { items = items.Take(request.Limit.Value).ToArray(); } var dtos = items .Select(i => _dtoService.GetBaseItemDto(i.Item2, request.GetItemFields().ToList(), user)) .ToArray(); var index = 0; foreach (var item in dtos) { item.PlaylistItemId = items[index].Item1.Id; index++; } var result = new ItemsResult { Items = dtos, TotalRecordCount = count }; return(ToOptimizedResult(result)); }