1
0
mirror of https://github.com/chylex/Minecraft-Phantom-Panel.git synced 2025-05-02 21:34:05 +02:00
Minecraft-Phantom-Panel/Agent/Phantom.Agent.Services/Instances/Procedures/SetInstanceToNotRunningStateProcedure.cs

18 lines
646 B
C#

using Phantom.Agent.Services.Instances.States;
using Phantom.Common.Data.Instance;
namespace Phantom.Agent.Services.Instances.Procedures;
sealed record SetInstanceToNotRunningStateProcedure(IInstanceStatus Status) : IInstanceProcedure {
public Task<IInstanceState?> Run(IInstanceContext context, CancellationToken cancellationToken) {
if (context.CurrentState is InstanceRunningState { Process.HasEnded: true }) {
context.SetStatus(Status);
context.ReportEvent(InstanceEvent.Stopped);
return Task.FromResult<IInstanceState?>(new InstanceNotRunningState());
}
else {
return Task.FromResult<IInstanceState?>(null);
}
}
}