using Gameboard.ShogiUI.Rules; using System.Collections.Concurrent; namespace Gameboard.ShogiUI.Sockets.Managers { public interface IBoardManager { void Add(string sessionName, ShogiBoard board); ShogiBoard? Get(string sessionName); } public class BoardManager : IBoardManager { private readonly ConcurrentDictionary Boards; public BoardManager() { Boards = new ConcurrentDictionary(); } public void Add(string sessionName, ShogiBoard board) => Boards.TryAdd(sessionName, board); public ShogiBoard? Get(string sessionName) { if (Boards.TryGetValue(sessionName, out var board)) { return board; } return null; } } }