using Dapper; using Shogi.Api.Repositories.Dto; using Shogi.Contracts.Types; using System.Data.SqlClient; namespace Shogi.Api.Repositories; public class QueryRepository : IQueryRespository { private readonly string connectionString; public QueryRepository(IConfiguration configuration) { connectionString = configuration.GetConnectionString("ShogiDatabase"); } public async Task> ReadAllSessionsMetadata() { using var connection = new SqlConnection(connectionString); return await connection.QueryAsync( "session.ReadAllSessionsMetadata", commandType: System.Data.CommandType.StoredProcedure); } public async Task ReadSession(string name) { using var connection = new SqlConnection(connectionString); var results = await connection.QueryAsync( "session.ReadSession", commandType: System.Data.CommandType.StoredProcedure); return results.SingleOrDefault(); } } public interface IQueryRespository { Task> ReadAllSessionsMetadata(); Task ReadSession(string name); }