Files
horooko 2f745ba328 feat(task-0002): implement state controller interface with cancellation support and update task status
- Refactor BootStatesController to implement IStatesController interface
- Move state dictionary creation into constructor, remove static helper method
- Add CancellationToken validation before state transitions in StatesController
- Track current state presence with _hasCurrentState flag for safety
- Update TASK-0002 with Ready status

Выполнена задача TASK-0002 и обновлён статус:
- Рефакторинг BootStatesController для реализации интерфейса IStatesController
- Перемещено создание словаря состояний в конструктор, удалён статический вспомогательный метод
- Добавлена валидация CancellationToken перед переходами между состояниями в StatesController
- Добавлен флаг _hasCurrentState для отслеживания текущего состояния
- Обновлён статус TASK-0002 до Ready
2026-05-27 04:04:59 +07:00

32 lines
990 B
C#

using System.Collections.Generic;
using System.Threading;
using Cysharp.Threading.Tasks;
using QuizPleaseTest.Common.StateMachine;
namespace QuizPleaseTest.Boot.States
{
public class BootStatesController : IStatesController<BootStateCode>
{
private readonly StatesController<BootStateCode> _statesController;
public BootStatesController(
SplashState splashState,
LoadState loadState,
MenuState menuState)
{
_statesController = new StatesController<BootStateCode>(
new Dictionary<BootStateCode, IState>
{
{ BootStateCode.Splash, splashState },
{ BootStateCode.Load, loadState },
{ BootStateCode.Menu, menuState }
});
}
public UniTask EnterStateAsync(BootStateCode code, CancellationToken ct)
{
return _statesController.EnterStateAsync(code, ct);
}
}
}