using Dapper; using Shogi.Api.Models; using System.Data; using System.Data.SqlClient; namespace Shogi.Api.Repositories; public class UserRepository : IUserRepository { private readonly string connectionString; public UserRepository(IConfiguration configuration) { connectionString = configuration.GetConnectionString("ShogiDatabase"); } public async Task CreateUser(User user) { using var connection = new SqlConnection(connectionString); await connection.ExecuteAsync( "user.CreateUser", new { Name = user.Id, DisplayName = user.DisplayName, Platform = user.LoginPlatform.ToString() }, commandType: CommandType.StoredProcedure); } public async Task ReadUser(string id) { using var connection = new SqlConnection(connectionString); var results = await connection.QueryAsync( "user.ReadUser", new { Name = id }, commandType: CommandType.StoredProcedure); return results.FirstOrDefault(); } } public interface IUserRepository { Task CreateUser(User user); Task ReadUser(string id); }