private RemoteImageResult GetRemoteImageResult(BaseItem item, BaseRemoteImageRequest request) { var images = _providerManager.GetAvailableRemoteImages(item, CancellationToken.None, request.ProviderName, request.Type).Result; var imagesList = images.ToList(); var result = new RemoteImageResult { TotalRecordCount = imagesList.Count, Providers = _providerManager.GetImageProviders(item).Select(i => i.Name).ToList() }; if (request.StartIndex.HasValue) { imagesList = imagesList.Skip(request.StartIndex.Value) .ToList(); } if (request.Limit.HasValue) { imagesList = imagesList.Take(request.Limit.Value) .ToList(); } result.Images = imagesList; return(result); }
public async Task <ActionResult <RemoteImageResult> > GetRemoteImages( [FromRoute, Required] Guid itemId, [FromQuery] ImageType?type, [FromQuery] int?startIndex, [FromQuery] int?limit, [FromQuery] string?providerName, [FromQuery] bool includeAllLanguages = false) { var item = _libraryManager.GetItemById(itemId); if (item == null) { return(NotFound()); } var images = await _providerManager.GetAvailableRemoteImages( item, new RemoteImageQuery(providerName ?? string.Empty) { IncludeAllLanguages = includeAllLanguages, IncludeDisabledProviders = true, ImageType = type }, CancellationToken.None) .ConfigureAwait(false); var imageArray = images.ToArray(); var allProviders = _providerManager.GetRemoteImageProviderInfo(item); if (type.HasValue) { allProviders = allProviders.Where(o => o.SupportedImages.Contains(type.Value)); } var result = new RemoteImageResult { TotalRecordCount = imageArray.Length, Providers = allProviders.Select(o => o.Name) .Distinct(StringComparer.OrdinalIgnoreCase) .ToArray() }; if (startIndex.HasValue) { imageArray = imageArray.Skip(startIndex.Value).ToArray(); } if (limit.HasValue) { imageArray = imageArray.Take(limit.Value).ToArray(); } result.Images = imageArray; return(result); }
public async Task <object> Get(GetRemoteImages request) { var item = _libraryManager.GetItemById(request.Id); var images = await _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery { ProviderName = request.ProviderName, IncludeAllLanguages = request.IncludeAllLanguages, IncludeDisabledProviders = true, ImageType = request.Type }, CancellationToken.None).ConfigureAwait(false); var imagesList = images.ToArray(); var allProviders = _providerManager.GetRemoteImageProviderInfo(item); if (request.Type.HasValue) { allProviders = allProviders.Where(i => i.SupportedImages.Contains(request.Type.Value)); } var result = new RemoteImageResult { TotalRecordCount = imagesList.Length, Providers = allProviders.Select(i => i.Name) .Distinct(StringComparer.OrdinalIgnoreCase) .ToArray() }; if (request.StartIndex.HasValue) { imagesList = imagesList.Skip(request.StartIndex.Value) .ToArray(); } if (request.Limit.HasValue) { imagesList = imagesList.Take(request.Limit.Value) .ToArray(); } result.Images = imagesList; return(result); }
private RemoteImageResult GetRemoteImageResult(BaseItem item, BaseRemoteImageRequest request) { var images = _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery { ProviderName = request.ProviderName, IncludeAllLanguages = request.IncludeAllLanguages, IncludeDisabledProviders = true, ImageType = request.Type }, CancellationToken.None).Result; var imagesList = images.ToList(); var allProviders = _providerManager.GetRemoteImageProviderInfo(item); if (request.Type.HasValue) { allProviders = allProviders.Where(i => i.SupportedImages.Contains(request.Type.Value)); } var result = new RemoteImageResult { TotalRecordCount = imagesList.Count, Providers = allProviders.Select(i => i.Name) .Distinct(StringComparer.OrdinalIgnoreCase) .ToList() }; if (request.StartIndex.HasValue) { imagesList = imagesList.Skip(request.StartIndex.Value) .ToList(); } if (request.Limit.HasValue) { imagesList = imagesList.Take(request.Limit.Value) .ToList(); } result.Images = imagesList; return(result); }