Files
Orchard/src/Orchard.Web/Modules/Orchard.PackageManager/Events/ExtensionDisplayEventHandler.cs
Andre Rodrigues 4a640ded06 Converting module and themes entries to shapes on module and theme projects. Adding recently updated notifications. Fixing small issue in Layout.Title.
--HG--
branch : dev
rename : src/Orchard.Web/Modules/Orchard.Modules/ViewModels/Module.cs => src/Orchard.Web/Modules/Orchard.Modules/Models/ModuleEntry.cs
rename : src/Orchard.Web/Modules/Orchard.Modules/ViewModels/ModuleFeature.cs => src/Orchard.Web/Modules/Orchard.Modules/Models/ModuleFeature.cs
2011-02-21 12:03:06 -08:00

43 lines
1.9 KiB
C#

using System.Collections.Generic;
using System.Linq;
using Orchard.Environment.Extensions.Models;
using Orchard.Localization;
using Orchard.PackageManager.Services;
using Orchard.Packaging.Services;
namespace Orchard.PackageManager.Events {
public class ExtensionDisplayEventHandler : IExtensionDisplayEventHandler {
private readonly IBackgroundPackageUpdateStatus _backgroundPackageUpdateStatus;
private readonly IPackagingSourceManager _packagingSourceManager;
private readonly IPackageUpdateService _packageUpdateService;
public ExtensionDisplayEventHandler(IBackgroundPackageUpdateStatus backgroundPackageUpdateStatus,
IPackagingSourceManager packagingSourceManager,
IPackageUpdateService packageUpdateService) {
_backgroundPackageUpdateStatus = backgroundPackageUpdateStatus;
_packagingSourceManager = packagingSourceManager;
_packageUpdateService = packageUpdateService;
T = NullLocalizer.Instance;
}
public Localizer T { get; set; }
public IEnumerable<string> Displaying(ExtensionDescriptor extensionDescriptor) {
// Get status from background task state or directly
_backgroundPackageUpdateStatus.Value =
_backgroundPackageUpdateStatus.Value ??
_packageUpdateService.GetPackagesStatus(_packagingSourceManager.GetSources());
UpdatePackageEntry updatePackageEntry = _backgroundPackageUpdateStatus.Value.Entries
.Where(package => package.ExtensionsDescriptor.Id.Equals(extensionDescriptor.Id)).FirstOrDefault();
if (updatePackageEntry != null) {
if (updatePackageEntry.NewVersionToInstall != null) {
yield return T("New version available: {0}", updatePackageEntry.NewVersionToInstall.Version).ToString();
}
}
}
}
}