Files
Shogi/Shogi.Sockets/Repositories/QueryRepository.cs
2022-10-31 08:08:58 -05:00

39 lines
1.1 KiB
C#

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<IEnumerable<SessionMetadata>> ReadAllSessionsMetadata()
{
using var connection = new SqlConnection(connectionString);
return await connection.QueryAsync<SessionMetadata>(
"session.ReadAllSessionsMetadata",
commandType: System.Data.CommandType.StoredProcedure);
}
public async Task<SessionMetadata?> ReadSession(string name)
{
using var connection = new SqlConnection(connectionString);
var results = await connection.QueryAsync<SessionDto>(
"session.ReadSession",
commandType: System.Data.CommandType.StoredProcedure);
return results.SingleOrDefault();
}
}
public interface IQueryRespository
{
Task<IEnumerable<SessionMetadata>> ReadAllSessionsMetadata();
Task<SessionMetadata?> ReadSession(string name);
}