diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Controllers/GalleryController.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Controllers/GalleryController.cs index c07eecccf..c00e46497 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Controllers/GalleryController.cs +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Controllers/GalleryController.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Data.Services.Client; using System.Linq; using System.Web.Hosting; using System.Web.Mvc; diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackagingEntry.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackagingEntry.cs index 4bbaf7263..ce78e22f0 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackagingEntry.cs +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackagingEntry.cs @@ -1,4 +1,3 @@ - using System; using Orchard.Packaging.Models; @@ -9,6 +8,7 @@ namespace Orchard.Packaging.Services { public string PackageId { get; set; } public string Version { get; set; } public string PackageStreamUri { get; set; } + public string ProjectUrl { get; set; } public DateTime LastUpdated { get; set; } public string Authors { get; set; } public string Description { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackagingSourceManager.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackagingSourceManager.cs index 49065efce..c4962ec1d 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackagingSourceManager.cs +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackagingSourceManager.cs @@ -52,19 +52,22 @@ namespace Orchard.Packaging.Services { private IEnumerable GetExtensionList(string filter = null, PackagingSource packagingSource = null) { return (packagingSource == null ? GetSources() : new[] {packagingSource}) .SelectMany( - source => - new GalleryFeedContext(new Uri(source.FeedUrl)).Packages - .Where(p => p.PackageType == filter) - .ToList() - .Select(p => CreatePackageEntry(p, packagingSource)) + source => { + GalleryFeedContext galleryFeedContext = new GalleryFeedContext(new Uri(source.FeedUrl)); + return galleryFeedContext.Packages + .Where(p => p.PackageType == filter) + .ToList() + .Select(p => CreatePackageEntry(p, packagingSource, galleryFeedContext.GetReadStreamUri(p))); + } ).ToArray(); } - private static PackagingEntry CreatePackageEntry(PublishedPackage package, PackagingSource source) { + private static PackagingEntry CreatePackageEntry(PublishedPackage package, PackagingSource source, Uri downloadUri) { return new PackagingEntry { Title = String.IsNullOrWhiteSpace(package.Title) ? package.Id : package.Title, PackageId = package.Id, - PackageStreamUri = package.ProjectUrl != null ? package.ProjectUrl.ToString() : String.Empty, + PackageStreamUri = downloadUri.ToString(), + ProjectUrl = package.ProjectUrl, Source = source, Version = package.Version ?? String.Empty, Description = package.Description, diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Views/Gallery/Modules.cshtml b/src/Orchard.Web/Modules/Orchard.Packaging/Views/Gallery/Modules.cshtml index 4fc9f98b1..20037ae05 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Views/Gallery/Modules.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Views/Gallery/Modules.cshtml @@ -36,6 +36,7 @@ } diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Views/Gallery/Themes.cshtml b/src/Orchard.Web/Modules/Orchard.Packaging/Views/Gallery/Themes.cshtml index b1e8a4e20..6c13a7a2c 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Views/Gallery/Themes.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Views/Gallery/Themes.cshtml @@ -36,6 +36,7 @@ }