1
0
Fork 0
mirror of https://github.com/lidarr/Lidarr synced 2025-01-03 05:25:10 +00:00

Inherit trigger from pushed command models

(cherry picked from commit 0bc4903954b955fce0c368ef7fd2a6f3761d6a93)

Closes #5181
This commit is contained in:
Bogdan 2024-10-17 04:46:15 +03:00
parent a843a46fbe
commit 8623b4410c
3 changed files with 7 additions and 8 deletions

View file

@ -179,9 +179,8 @@ public ActionResult<ArtistResource> UpdateArtist(ArtistResource artistResource,
ArtistId = artist.Id, ArtistId = artist.Id,
SourcePath = sourcePath, SourcePath = sourcePath,
DestinationPath = destinationPath, DestinationPath = destinationPath,
MoveFiles = moveFiles, MoveFiles = moveFiles
Trigger = CommandTrigger.Manual }, trigger: CommandTrigger.Manual);
});
var model = artistResource.ToModel(artist); var model = artistResource.ToModel(artist);

View file

@ -66,9 +66,8 @@ public ActionResult<CommandResource> StartCommand(CommandResource commandResourc
? CommandPriority.High ? CommandPriority.High
: CommandPriority.Normal; : CommandPriority.Normal;
dynamic command = STJson.Deserialize(body, commandType); var command = STJson.Deserialize(body, commandType) as Command;
command.Trigger = CommandTrigger.Manual;
command.SuppressMessages = !command.SendUpdatesToClient; command.SuppressMessages = !command.SendUpdatesToClient;
command.SendUpdatesToClient = true; command.SendUpdatesToClient = true;
command.ClientUserAgent = Request.Headers["UserAgent"]; command.ClientUserAgent = Request.Headers["UserAgent"];

View file

@ -106,6 +106,8 @@ public CommandModel Push<TCommand>(TCommand command, CommandPriority priority =
_logger.Trace("Publishing {0}", command.Name); _logger.Trace("Publishing {0}", command.Name);
_logger.Trace("Checking if command is queued or started: {0}", command.Name); _logger.Trace("Checking if command is queued or started: {0}", command.Name);
command.Trigger = trigger;
lock (_commandQueue) lock (_commandQueue)
{ {
var existingCommands = QueuedOrStarted(command.Name); var existingCommands = QueuedOrStarted(command.Name);
@ -142,7 +144,6 @@ public CommandModel Push(string commandName, DateTime? lastExecutionTime, DateTi
var command = GetCommand(commandName); var command = GetCommand(commandName);
command.LastExecutionTime = lastExecutionTime; command.LastExecutionTime = lastExecutionTime;
command.LastStartTime = lastStartTime; command.LastStartTime = lastStartTime;
command.Trigger = trigger;
return Push(command, priority, trigger); return Push(command, priority, trigger);
} }
@ -244,13 +245,13 @@ public void CleanCommands()
_repo.Trim(); _repo.Trim();
} }
private dynamic GetCommand(string commandName) private Command GetCommand(string commandName)
{ {
commandName = commandName.Split('.').Last(); commandName = commandName.Split('.').Last();
var commands = _knownTypes.GetImplementations(typeof(Command)); var commands = _knownTypes.GetImplementations(typeof(Command));
var commandType = commands.Single(c => c.Name.Equals(commandName, StringComparison.InvariantCultureIgnoreCase)); var commandType = commands.Single(c => c.Name.Equals(commandName, StringComparison.InvariantCultureIgnoreCase));
return Json.Deserialize("{}", commandType); return Json.Deserialize("{}", commandType) as Command;
} }
private void Update(CommandModel command, CommandStatus status, string message) private void Update(CommandModel command, CommandStatus status, string message)