58 lines
1.8 KiB
C#
58 lines
1.8 KiB
C#
using DbController;
|
|
using Tabletop.Core.Models;
|
|
|
|
namespace Tabletop.Core.Services
|
|
{
|
|
public class MoveService : IModelService<Move, int>
|
|
{
|
|
public async Task CreateAsync(Move input, IDbController dbController, CancellationToken cancellationToken = default)
|
|
{
|
|
string sql = $@"INSERT INTO Moves
|
|
(
|
|
PlayerId,
|
|
GameId,
|
|
TurnNr,
|
|
MoveNr,
|
|
StartMove,
|
|
EndMove
|
|
)
|
|
VALUES
|
|
(
|
|
@PLAYER_ID
|
|
@GAME_ID,
|
|
@TURN_NR,
|
|
@MOVE_NR,
|
|
@START_MOVE,
|
|
@END_END
|
|
); {dbController.GetLastIdSql()}";
|
|
|
|
input.MoveId = await dbController.GetFirstAsync<int>(sql, input.GetParameters(), cancellationToken);
|
|
}
|
|
|
|
public Task DeleteAsync(Move input, IDbController dbController, CancellationToken cancellationToken = default)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<Move?> GetAsync(int identifier, IDbController dbController, CancellationToken cancellationToken = default)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public async Task UpdateAsync(Move input, IDbController dbController, CancellationToken cancellationToken = default)
|
|
{
|
|
cancellationToken.ThrowIfCancellationRequested();
|
|
string sql = @"UPDATE Moves SET
|
|
PlayerId = @PLAYER_ID,
|
|
GameId = @GAME_ID,
|
|
TurnNr = @TURN_NR,
|
|
MoveNr = @MOVE_NR,
|
|
StartMove = @START_MOVE,
|
|
EndMove = @END_END
|
|
WHERE MoveId = @MOVE_ID";
|
|
|
|
await dbController.QueryAsync(sql, input.GetParameters(), cancellationToken);
|
|
}
|
|
}
|
|
}
|