create, read, playercount

This commit is contained in:
2022-11-09 16:08:04 -06:00
parent a1f996e508
commit da76917490
37 changed files with 999 additions and 814 deletions

View File

@@ -1,15 +1,12 @@
CREATE PROCEDURE [session].[CreateSession]
@Name [session].[SessionName],
@Player1Name [user].[UserName],
@InitialBoardStateDocument [session].[JsonDocument]
@Player1Name [user].[UserName]
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [session].[Session] (BoardState, Player1Id)
SELECT
@InitialBoardStateDocument,
Id
INSERT INTO [session].[Session] ([Name], Player1Id)
SELECT @Name, Id
FROM [user].[User]
WHERE [Name] = @Player1Name
END

View File

@@ -0,0 +1,5 @@
CREATE PROCEDURE [session].[DeleteSession]
@Name [session].[SessionName]
AS
DELETE FROM [session].[Session] WHERE [Name] = @Name;

View File

@@ -2,15 +2,32 @@
@Name [session].[SessionName]
AS
BEGIN
SET NOCOUNT ON
SET NOCOUNT ON -- Performance boost
SET XACT_ABORT ON -- Rollback transaction on error
SET TRANSACTION ISOLATION LEVEL SNAPSHOT -- Ignores data changes that happen after the transaction begins.
SELECT
sess.[Name],
BoardState,
p1.[Name] as Player1,
p2.[Name] as Player2
FROM [session].[Session] sess
INNER JOIN [user].[User] p1 on sess.Player1Id = p1.Id
LEFT JOIN [user].[User] p2 on sess.Player2Id = p2.Id
WHERE sess.[Name] = @Name;
BEGIN TRANSACTION
-- Session
SELECT
sess.[Name],
p1.[Name] as Player1,
p2.[Name] as Player2
FROM [session].[Session] sess
INNER JOIN [user].[User] p1 on sess.Player1Id = p1.Id
LEFT JOIN [user].[User] p2 on sess.Player2Id = p2.Id
WHERE sess.[Name] = @Name;
-- Player moves
SELECT
mv.[From],
mv.[To],
mv.IsPromotion,
piece.[Name] as PieceFromHand
FROM [session].[Move] mv
INNER JOIN [session].[Session] sess ON sess.Id = mv.SessionId
RIGHT JOIN [session].Piece piece on piece.Id = mv.PieceIdFromHand
WHERE sess.[Name] = @Name;
COMMIT
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [session].[ReadAllSessionsMetadata]
CREATE PROCEDURE [session].[ReadSessionPlayerCount]
AS
BEGIN
SET NOCOUNT ON;