using API.Controllers; using API.Models.DataClasses; using API.Models.Game; using API.Repository.GameRepo; using Microsoft.AspNetCore.SignalR; namespace API.Services.GameManager; public class GameManager(IGameRepository gameRepository, IHubContext hubContext) : IGameManager { public (string, int) CreateGame(Coordinates gFs, Player player) { var game = gameRepository.Create(gFs); game.AddPlayer(player); return (game.Id, game.GameCode); } public async Task JoinGame(Player player, int gameCode) { var game = gameRepository.GetOne(new SixDigitInt(gameCode)); var success = game != null && game.AddPlayer(player); if (game!.State == GameState.Running) await hubContext.Clients.Group(game.Id).SendAsync("GameStarted"); return game.Id; } public async Task Place(string gameCode, int coordinates, string playerConnectionId) { return true; } }