using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using ProjectGrid.Data; using ProjectGrid.Models; namespace ProjectGrid.Controllers { [ApiController] public class TicTacTocController : ControllerBase { private readonly ILogger _logger; private readonly TicTacTocManager _manager; public TicTacTocController(ILogger logger, TicTacTocManager manager) { _logger = logger; _manager = manager; } [HttpGet] [Route("api/ttt/GetBoard")] public TicTacTocResponse GetBoard() { _logger.LogTrace("GetBoard called."); return _manager.GetResponse(); } [HttpGet] [Route("api/ttt/Restart")] public void RestartGame() { _logger.LogTrace("RestartGame called."); _manager.Restart(); } [HttpPost] [Route("api/ttt/SetPiece")] [Consumes("application/json")] public TicTacTocResponse PostMove(TicTacTocRequest move) { _logger.LogTrace($"PostMove called. {move.DebugString()}"); _manager.NextMove(move); return _manager.GetResponse(move.Player); } } }