using Minesweeper.Core; namespace Minesweeper.Commands { public sealed class SelectFieldCommandHandler : IGameCommandHandler { private readonly IGameStateService gameStateService; public SelectFieldCommandHandler(IGameStateService gameStateService) { this.gameStateService = gameStateService; } public void Handle(SelectFieldCommand command) { gameStateService.SetState(GameState.FieldSelection); } } public sealed class StartGameCommandHandler : IGameCommandHandler { private readonly IGameStateService gameStateService; public StartGameCommandHandler(IGameStateService gameStateService) { this.gameStateService = gameStateService; } public void Handle(StartGameCommand command) { gameStateService.SetState(GameState.Preparing); } } public sealed class OpenCellCommandHandler : IGameCommandHandler { public void Handle(OpenCellCommand command) { } } public sealed class ToggleFlagCommandHandler : IGameCommandHandler { public void Handle(ToggleFlagCommand command) { } } public sealed class RestartCommandHandler : IGameCommandHandler { private readonly IGameStateService gameStateService; public RestartCommandHandler(IGameStateService gameStateService) { this.gameStateService = gameStateService; } public void Handle(RestartCommand command) { gameStateService.SetState(GameState.Preparing); } } public sealed class PauseCommandHandler : IGameCommandHandler { public void Handle(PauseCommand command) { } } public sealed class ResumeCommandHandler : IGameCommandHandler { public void Handle(ResumeCommand command) { } } public sealed class GoToMenuCommandHandler : IGameCommandHandler { private readonly IGameStateService gameStateService; public GoToMenuCommandHandler(IGameStateService gameStateService) { this.gameStateService = gameStateService; } public void Handle(GoToMenuCommand command) { gameStateService.SetState(GameState.FieldSelection); } } }