This commit is contained in:
2026-04-12 22:34:46 +08:00
parent d554e9e659
commit 73e16ab6c1
25 changed files with 5962 additions and 52 deletions

View File

@@ -33,6 +33,61 @@ namespace OrpaonVision.SiteApp.Runtime.Services
};
}
/// <inheritdoc />
public RuntimeState GetCurrentState()
{
return _currentLayer > _options.TotalLayers ? RuntimeState.Completed : RuntimeState.Running;
}
/// <inheritdoc />
public int GetCurrentLayer()
{
return _currentLayer;
}
/// <inheritdoc />
public bool CanExecuteOperation(StateTrigger trigger)
{
_ = trigger;
return true;
}
/// <inheritdoc />
public Result<StateTransitionEvent> TriggerTransition(StateTrigger trigger, string? reason = null, object? parameters = null)
{
_ = reason;
_ = parameters;
// 简化实现:对某些触发器映射到已有操作
if (trigger == StateTrigger.MoveToNextLayer)
{
var move = MoveToNextLayer();
if (!move.Succeeded)
{
return Result<StateTransitionEvent>.Fail(move.Code, move.Message);
}
}
else if (trigger == StateTrigger.Reset)
{
Reset();
}
var ev = new StateTransitionEvent
{
EventType = StateTransitionEventType.Error,
PreviousState = RuntimeState.Running,
NewState = GetCurrentState(),
PreviousLayer = _currentLayer,
NewLayer = _currentLayer,
Timestamp = DateTime.UtcNow,
Reason = reason ?? string.Empty,
Trigger = trigger,
GuardResult = "Simple"
};
return Result<StateTransitionEvent>.Success(ev);
}
/// <inheritdoc />
public Result MoveToNextLayer()
{