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; } } }