Better move error visibility
This commit is contained in:
@@ -87,28 +87,21 @@ public class ShogiApplication(
|
||||
return new ForbidResult();
|
||||
}
|
||||
|
||||
try
|
||||
var moveResult = command.PieceFromHand.HasValue
|
||||
? session.Board.Move(command.PieceFromHand.Value.ToDomain(), command.To)
|
||||
: session.Board.Move(command.From!, command.To, command.IsPromotion ?? false);
|
||||
|
||||
if (moveResult.IsSuccess)
|
||||
{
|
||||
if (command.PieceFromHand.HasValue)
|
||||
{
|
||||
session.Board.Move(command.PieceFromHand.Value.ToDomain(), command.To);
|
||||
}
|
||||
else
|
||||
{
|
||||
var isPromotion = command.IsPromotion ?? false;
|
||||
session.Board.Move(command.From!, command.To, isPromotion);
|
||||
}
|
||||
await sessionRepository.CreateMove(sessionId, command);
|
||||
await gameHubContext.Emit_PieceMoved(sessionId);
|
||||
return new NoContentResult();
|
||||
}
|
||||
catch (InvalidOperationException e)
|
||||
else
|
||||
{
|
||||
return new ConflictObjectResult(e.Message);
|
||||
return new ConflictObjectResult(moveResult.Reason);
|
||||
}
|
||||
|
||||
await sessionRepository.CreateMove(sessionId, command);
|
||||
|
||||
await gameHubContext.Emit_PieceMoved(sessionId);
|
||||
|
||||
return new NoContentResult();
|
||||
}
|
||||
|
||||
public async Task<IActionResult> JoinSession(string sessionId, string player2Id)
|
||||
|
||||
Reference in New Issue
Block a user