using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using NzbDrone.Core.Datastore.Events; using NzbDrone.Core.Jobs; using NzbDrone.Core.Messaging.Events; using NzbDrone.SignalR; namespace NzbDrone.Api.System.Tasks { public class TaskModule : NzbDroneRestModuleWithSignalR, IHandle { private readonly ITaskManager _taskManager; private static readonly Regex NameRegex = new Regex("(? GetAll() { return _taskManager.GetAll().Select(ConvertToResource).ToList(); } private static TaskResource ConvertToResource(ScheduledTask scheduledTask) { var taskName = scheduledTask.TypeName.Split('.').Last().Replace("Command", ""); return new TaskResource { Id = scheduledTask.Id, Name = NameRegex.Replace(taskName, match => " " + match.Value), TaskName = taskName, Interval = scheduledTask.Interval, LastExecution = scheduledTask.LastExecution, NextExecution = scheduledTask.LastExecution.AddMinutes(scheduledTask.Interval) }; } public void Handle(CommandExecutedEvent message) { BroadcastResourceChange(ModelAction.Sync); } } }