Esempio n. 1
0
        public object Get(GetLatestMedia request)
        {
            var user = _userManager.GetUserById(request.UserId);

            if (!request.IsPlayed.HasValue)
            {
                if (user.Configuration.HidePlayedInLatest)
                {
                    request.IsPlayed = false;
                }
            }

            var dtoOptions = GetDtoOptions(_authContext, request);

            var list = _userViewManager.GetLatestItems(new LatestItemsQuery
            {
                GroupItems       = request.GroupItems,
                IncludeItemTypes = ApiEntryPoint.Split(request.IncludeItemTypes, ',', true),
                IsPlayed         = request.IsPlayed,
                Limit            = request.Limit,
                ParentId         = request.ParentId,
                UserId           = request.UserId,
            }, dtoOptions);

            var dtos = list.Select(i =>
            {
                var item       = i.Item2[0];
                var childCount = 0;

                if (i.Item1 != null && (i.Item2.Count > 1 || i.Item1 is MusicAlbum))
                {
                    item       = i.Item1;
                    childCount = i.Item2.Count;
                }

                var dto = _dtoService.GetBaseItemDto(item, dtoOptions, user);

                dto.ChildCount = childCount;

                return(dto);
            });

            return(ToOptimizedResult(dtos.ToArray()));
        }