mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-12-03 20:13:52 +08:00
#17553: Using expand to obtain screenshots for the gallery and cut HTTP requests down.
--HG-- branch : 1.x
This commit is contained in:
@@ -73,22 +73,15 @@ namespace Orchard.Packaging.Services {
|
|||||||
.SelectMany(
|
.SelectMany(
|
||||||
source => {
|
source => {
|
||||||
var galleryFeedContext = new GalleryFeedContext(new Uri(source.FeedUrl));
|
var galleryFeedContext = new GalleryFeedContext(new Uri(source.FeedUrl));
|
||||||
IQueryable<PublishedPackage> packages = galleryFeedContext.Packages;
|
IQueryable<PublishedPackage> packages = includeScreenshots
|
||||||
|
? galleryFeedContext.Packages.Expand("Screenshots")
|
||||||
|
: galleryFeedContext.Packages;
|
||||||
|
|
||||||
if (query != null) {
|
if (query != null) {
|
||||||
packages = query(packages);
|
packages = query(packages);
|
||||||
}
|
}
|
||||||
|
|
||||||
return packages.ToList().Select(
|
return packages.ToList().Select(p => CreatePackageEntry(p, packagingSource, galleryFeedContext.GetReadStreamUri(p)));
|
||||||
p => {
|
|
||||||
PublishedScreenshot firstScreenshot = includeScreenshots
|
|
||||||
? galleryFeedContext.Screenshots
|
|
||||||
.Where(s => s.PublishedPackageId == p.Id && s.PublishedPackageVersion == p.Version)
|
|
||||||
.ToList()
|
|
||||||
.FirstOrDefault()
|
|
||||||
: null;
|
|
||||||
return CreatePackageEntry(p, firstScreenshot, packagingSource, galleryFeedContext.GetReadStreamUri(p));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -116,12 +109,14 @@ namespace Orchard.Packaging.Services {
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private static PackagingEntry CreatePackageEntry(PublishedPackage package, PublishedScreenshot screenshot, PackagingSource source, Uri downloadUri) {
|
private static PackagingEntry CreatePackageEntry(PublishedPackage package, PackagingSource source, Uri downloadUri) {
|
||||||
Uri baseUri = new Uri(string.Format("{0}://{1}:{2}/",
|
Uri baseUri = new Uri(string.Format("{0}://{1}:{2}/",
|
||||||
downloadUri.Scheme,
|
downloadUri.Scheme,
|
||||||
downloadUri.Host,
|
downloadUri.Host,
|
||||||
downloadUri.Port));
|
downloadUri.Port));
|
||||||
|
|
||||||
|
PublishedScreenshot screenshot = package.Screenshots.FirstOrDefault();
|
||||||
|
|
||||||
string iconUrl = GetAbsoluteUri(package.IconUrl, baseUri);
|
string iconUrl = GetAbsoluteUri(package.IconUrl, baseUri);
|
||||||
string firstScreenshot = screenshot != null ? GetAbsoluteUri(screenshot.ScreenshotUri, baseUri) : string.Empty;
|
string firstScreenshot = screenshot != null ? GetAbsoluteUri(screenshot.ScreenshotUri, baseUri) : string.Empty;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user