Fix claims.

Use OID instead of email for microsoft identifier.
Fix PlayerCount route.
Add created date to user table.
Create spectator icon.
This commit is contained in:
2023-01-20 20:48:38 -06:00
parent 1d0beaf69f
commit 26fd955aa4
35 changed files with 672 additions and 1426 deletions

View File

@@ -1,4 +1,5 @@
using Dapper;
using Shogi.Contracts.Api;
using Shogi.Contracts.Types;
using System.Data.SqlClient;
@@ -6,23 +7,33 @@ namespace Shogi.Api.Repositories;
public class QueryRepository : IQueryRespository
{
private readonly string connectionString;
private readonly string connectionString;
public QueryRepository(IConfiguration configuration)
{
connectionString = configuration.GetConnectionString("ShogiDatabase");
}
public QueryRepository(IConfiguration configuration)
{
connectionString = configuration.GetConnectionString("ShogiDatabase");
}
public async Task<IEnumerable<SessionMetadata>> ReadSessionPlayerCount()
{
using var connection = new SqlConnection(connectionString);
return await connection.QueryAsync<SessionMetadata>(
"session.ReadSessionPlayerCount",
commandType: System.Data.CommandType.StoredProcedure);
}
public async Task<ReadSessionsPlayerCountResponse> ReadSessionPlayerCount(string playerName)
{
using var connection = new SqlConnection(connectionString);
var results = await connection.QueryMultipleAsync(
"session.ReadSessionPlayerCount",
new { PlayerName = playerName },
commandType: System.Data.CommandType.StoredProcedure);
var joinedSessions = await results.ReadAsync<SessionMetadata>();
var otherSessions = await results.ReadAsync<SessionMetadata>();
return new ReadSessionsPlayerCountResponse
{
PlayerHasJoinedSessions = joinedSessions.ToList(),
AllOtherSessions = otherSessions.ToList()
};
}
}
public interface IQueryRespository
{
Task<IEnumerable<SessionMetadata>> ReadSessionPlayerCount();
Task<ReadSessionsPlayerCountResponse> ReadSessionPlayerCount(string playerName);
}