mapper class and delete old stuff
This commit is contained in:
@@ -17,13 +17,13 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
{
|
||||
public interface IGameboardRepository
|
||||
{
|
||||
Task<bool> CreateBoardState(Session session);
|
||||
Task<bool> CreateSession(Models.SessionMetadata session);
|
||||
Task<bool> CreateUser(Models.User user);
|
||||
Task<Collection<Models.SessionMetadata>> ReadSessionMetadatas();
|
||||
Task CreateBoardState(Session session);
|
||||
Task CreateSession(SessionMetadata session);
|
||||
Task CreateUser(Models.User user);
|
||||
Task<Collection<SessionMetadata>> ReadSessionMetadatas();
|
||||
Task<Session?> ReadSession(string name);
|
||||
Task<bool> UpdateSession(Models.SessionMetadata session);
|
||||
Task<Models.SessionMetadata?> ReadSessionMetaData(string name);
|
||||
Task UpdateSession(SessionMetadata session);
|
||||
Task<SessionMetadata?> ReadSessionMetaData(string name);
|
||||
Task<Models.User?> ReadUser(string userName);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
public async Task<Collection<Models.SessionMetadata>> ReadSessionMetadatas()
|
||||
public async Task<Collection<SessionMetadata>> ReadSessionMetadatas()
|
||||
{
|
||||
var queryParams = new QueryBuilder { { "include_docs", "true" } }.ToQueryString();
|
||||
var response = await client.GetAsync($"{View_SessionMetadata}{queryParams}");
|
||||
@@ -57,7 +57,7 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
if (result != null)
|
||||
{
|
||||
var groupedBySession = result.rows.GroupBy(row => row.id);
|
||||
var sessions = new List<Models.SessionMetadata>(result.total_rows / 3);
|
||||
var sessions = new List<SessionMetadata>(result.total_rows / 3);
|
||||
foreach (var group in groupedBySession)
|
||||
{
|
||||
/**
|
||||
@@ -72,12 +72,12 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
if (session != null && player1Doc != null)
|
||||
{
|
||||
var player2 = player2Doc == null ? null : new Models.User(player2Doc);
|
||||
sessions.Add(new Models.SessionMetadata(session.Name, session.IsPrivate, new(player1Doc), player2));
|
||||
sessions.Add(new SessionMetadata(session.Name, session.IsPrivate, player1Doc.Id, player2?.Id));
|
||||
}
|
||||
}
|
||||
return new Collection<Models.SessionMetadata>(sessions);
|
||||
return new Collection<SessionMetadata>(sessions);
|
||||
}
|
||||
return new Collection<Models.SessionMetadata>(Array.Empty<Models.SessionMetadata>());
|
||||
return new Collection<SessionMetadata>(Array.Empty<SessionMetadata>());
|
||||
}
|
||||
|
||||
public async Task<Session?> ReadSession(string name)
|
||||
@@ -130,7 +130,7 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
return null;
|
||||
}
|
||||
|
||||
public async Task<Models.SessionMetadata?> ReadSessionMetaData(string name)
|
||||
public async Task<SessionMetadata?> ReadSessionMetaData(string name)
|
||||
{
|
||||
var queryParams = new QueryBuilder
|
||||
{
|
||||
@@ -159,7 +159,7 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
if (session != null && player1Doc != null)
|
||||
{
|
||||
var player2 = player2Doc == null ? null : new Models.User(player2Doc);
|
||||
return new Models.SessionMetadata(session.Name, session.IsPrivate, new(player1Doc), player2);
|
||||
return new SessionMetadata(session.Name, session.IsPrivate, player1Doc.Id, player2?.Id);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@@ -168,22 +168,15 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
/// <summary>
|
||||
/// Saves a snapshot of board state and the most recent move.
|
||||
/// </summary>
|
||||
public async Task<bool> CreateBoardState(Session session)
|
||||
public async Task CreateBoardState(Session session)
|
||||
{
|
||||
Piece? MapPiece(Shogi.Domain.Pieces.Piece? piece)
|
||||
{
|
||||
return piece == null
|
||||
? null
|
||||
: new Piece { IsPromoted = piece.IsPromoted, Owner = piece.Owner, WhichPiece = piece.WhichPiece };
|
||||
}
|
||||
|
||||
var boardStateDocument = new BoardStateDocument(session.Name, session);
|
||||
var content = new StringContent(JsonConvert.SerializeObject(boardStateDocument), Encoding.UTF8, ApplicationJson);
|
||||
var response = await client.PostAsync(string.Empty, content);
|
||||
return response.IsSuccessStatusCode;
|
||||
response.EnsureSuccessStatusCode();
|
||||
}
|
||||
|
||||
public async Task<bool> CreateSession(Models.SessionMetadata session)
|
||||
public async Task CreateSession(SessionMetadata session)
|
||||
{
|
||||
var sessionDocument = new SessionDocument(session);
|
||||
var sessionContent = new StringContent(JsonConvert.SerializeObject(sessionDocument), Encoding.UTF8, ApplicationJson);
|
||||
@@ -195,16 +188,15 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
if ((await postSessionDocumentTask).IsSuccessStatusCode)
|
||||
{
|
||||
var response = await client.PostAsync(string.Empty, boardStateContent);
|
||||
return response.IsSuccessStatusCode;
|
||||
response.EnsureSuccessStatusCode();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public async Task<bool> UpdateSession(Models.SessionMetadata session)
|
||||
public async Task UpdateSession(SessionMetadata session)
|
||||
{
|
||||
// GET existing session to get revisionId.
|
||||
var readResponse = await client.GetAsync(session.Name);
|
||||
if (!readResponse.IsSuccessStatusCode) return false;
|
||||
readResponse.EnsureSuccessStatusCode();
|
||||
var sessionDocument = JsonConvert.DeserializeObject<SessionDocument>(await readResponse.Content.ReadAsStringAsync());
|
||||
|
||||
// PUT the document with the revisionId.
|
||||
@@ -214,7 +206,7 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
};
|
||||
var content = new StringContent(JsonConvert.SerializeObject(couchModel), Encoding.UTF8, ApplicationJson);
|
||||
var response = await client.PutAsync(couchModel.Id, content);
|
||||
return response.IsSuccessStatusCode;
|
||||
response.EnsureSuccessStatusCode();
|
||||
}
|
||||
//public async Task<bool> PutJoinPublicSession(PutJoinPublicSession request)
|
||||
//{
|
||||
@@ -285,12 +277,12 @@ namespace Gameboard.ShogiUI.Sockets.Repositories
|
||||
return null;
|
||||
}
|
||||
|
||||
public async Task<bool> CreateUser(Models.User user)
|
||||
public async Task CreateUser(Models.User user)
|
||||
{
|
||||
var couchModel = new UserDocument(user.Id, user.DisplayName, user.LoginPlatform);
|
||||
var content = new StringContent(JsonConvert.SerializeObject(couchModel), Encoding.UTF8, ApplicationJson);
|
||||
var response = await client.PostAsync(string.Empty, content);
|
||||
return response.IsSuccessStatusCode;
|
||||
response.EnsureSuccessStatusCode();
|
||||
}
|
||||
|
||||
public void ReadMoveHistory()
|
||||
|
||||
Reference in New Issue
Block a user