Files
Orchard/src/Orchard.Web/Core/Scheduling/Services/PublishingTaskHandler.cs
2010-05-12 15:04:39 -07:00

38 lines
1.4 KiB
C#

using JetBrains.Annotations;
using Orchard.ContentManagement;
using Orchard.Logging;
using Orchard.Tasks.Scheduling;
namespace Orchard.Core.Scheduling.Services {
[UsedImplicitly]
public class PublishingTaskHandler : IScheduledTaskHandler {
private readonly IContentManager _contentManager;
public PublishingTaskHandler(IContentManager contentManager) {
_contentManager = contentManager;
Logger = NullLogger.Instance;
}
public ILogger Logger { get; set; }
public void Process(ScheduledTaskContext context) {
if (context.Task.TaskType == "Publish") {
Logger.Information("Publishing item #{0} version {1} scheduled at {2} utc",
context.Task.ContentItem.Id,
context.Task.ContentItem.Version,
context.Task.ScheduledUtc);
_contentManager.Publish(context.Task.ContentItem);
}
else if (context.Task.TaskType == "Unpublish") {
Logger.Information("Unpublishing item #{0} version {1} scheduled at {2} utc",
context.Task.ContentItem.Id,
context.Task.ContentItem.Version,
context.Task.ScheduledUtc);
_contentManager.Unpublish(context.Task.ContentItem);
}
}
}
}