Files
Shogi/Shogi.Sockets/Repositories/UserRepository.cs

47 lines
1.1 KiB
C#

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<User?> ReadUser(string id)
{
using var connection = new SqlConnection(connectionString);
var results = await connection.QueryAsync<User>(
"user.ReadUser",
new { Name = id },
commandType: CommandType.StoredProcedure);
return results.FirstOrDefault();
}
}
public interface IUserRepository
{
Task CreateUser(User user);
Task<User?> ReadUser(string id);
}