using Dapper; using Shogi.Api.Repositories.Dto; using Shogi.Domain; using System.Data; using System.Data.SqlClient; using System.Text.Json; namespace Shogi.Api.Repositories; public class SessionRepository : ISessionRepository { private readonly string connectionString; public SessionRepository(IConfiguration configuration) { connectionString = configuration.GetConnectionString("ShogiDatabase"); } public async Task CreateSession(ShogiBoard session, string player1) { var initialBoardState = JsonSerializer.Serialize(session.BoardState); using var connection = new SqlConnection(connectionString); await connection.ExecuteAsync( "session.CreateSession", new { InitialBoardStateDocument = initialBoardState, Player1Name = player1, }, commandType: CommandType.StoredProcedure); } } public interface ISessionRepository { Task CreateSession(ShogiBoard session, string player1); }