/// <summary> /// Invoke commands /// </summary> public void InvokeCommands() { foreach (var command in _commands) { var name = command.GetType().GetInterfaces()[0].Name; switch (name) { case nameof(IBoardSetCommand): _initializationService.InitializationBoardSetCommand(_board, command); break; case nameof(IExitSetCommand): _initializationService.InitializationExitSetCommand(_board, _exit, command); break; case nameof(IMineSetCommand): _initializationService.InitializationObstacleSetCommand(_board, _mines, command); break; case nameof(ITurtleSetCommand): _initializationService.InitializationAnimalSetCommand(_board, _turtle, command); break; case nameof(ITurtleMoveCommand): _initializationService.InitializationAnimalMoveCommand(_turtle, _mines, _exit, command); break; } command.Execute(); } }