保存
This commit is contained in:
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user