1
0
Fork 0
mirror of https://github.com/lidarr/Lidarr synced 2024-12-21 23:32:27 +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,
SourcePath = sourcePath,
DestinationPath = destinationPath,
MoveFiles = moveFiles,
Trigger = CommandTrigger.Manual
});
MoveFiles = moveFiles
}, trigger: CommandTrigger.Manual);
var model = artistResource.ToModel(artist);

View file

@ -66,9 +66,8 @@ public ActionResult<CommandResource> StartCommand(CommandResource commandResourc
? CommandPriority.High
: 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.SendUpdatesToClient = true;
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("Checking if command is queued or started: {0}", command.Name);
command.Trigger = trigger;
lock (_commandQueue)
{
var existingCommands = QueuedOrStarted(command.Name);
@ -142,7 +144,6 @@ public CommandModel Push(string commandName, DateTime? lastExecutionTime, DateTi
var command = GetCommand(commandName);
command.LastExecutionTime = lastExecutionTime;
command.LastStartTime = lastStartTime;
command.Trigger = trigger;
return Push(command, priority, trigger);
}
@ -244,13 +245,13 @@ public void CleanCommands()
_repo.Trim();
}
private dynamic GetCommand(string commandName)
private Command GetCommand(string commandName)
{
commandName = commandName.Split('.').Last();
var commands = _knownTypes.GetImplementations(typeof(Command));
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)