Replace custom socket implementation with SignalR.
Replace MSAL and custom cookie auth with Microsoft.Identity.EntityFramework Also some UI redesign to accommodate different login experience.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
CREATE PROCEDURE [session].[CreateMove]
|
||||
@To VARCHAR(2),
|
||||
@From VARCHAR(2) = NULL,
|
||||
@To VARCHAR(2),
|
||||
@From VARCHAR(2) = NULL,
|
||||
@IsPromotion BIT = 0,
|
||||
@PieceFromHand NVARCHAR(13) = NULL,
|
||||
@SessionName [session].[SessionName]
|
||||
@PieceFromHand NVARCHAR(13) = NULL,
|
||||
@SessionId [session].[SessionSurrogateKey]
|
||||
AS
|
||||
|
||||
BEGIN
|
||||
@@ -13,11 +13,6 @@ BEGIN
|
||||
|
||||
BEGIN TRANSACTION
|
||||
|
||||
DECLARE @SessionId BIGINT = 0;
|
||||
SELECT @SessionId = Id
|
||||
FROM [session].[Session]
|
||||
WHERE [Name] = @SessionName;
|
||||
|
||||
DECLARE @PieceIdFromhand INT = NULL;
|
||||
SELECT @PieceIdFromhand = Id
|
||||
FROM [session].[Piece]
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
CREATE PROCEDURE [session].[CreateSession]
|
||||
@Name [session].[SessionName],
|
||||
@Player1Name [user].[UserName]
|
||||
@Id [session].[SessionSurrogateKey],
|
||||
@Player1Id [dbo].[AspNetUsersId]
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
INSERT INTO [session].[Session] ([Name], Player1Id)
|
||||
SELECT @Name, Id
|
||||
FROM [user].[User]
|
||||
WHERE [Name] = @Player1Name
|
||||
INSERT INTO [session].[Session]
|
||||
([Id], Player1Id)
|
||||
VALUES
|
||||
(@Id, @Player1Id)
|
||||
|
||||
END
|
||||
@@ -1,5 +1,5 @@
|
||||
CREATE PROCEDURE [session].[DeleteSession]
|
||||
@Name [session].[SessionName]
|
||||
@Id [session].[SessionSurrogateKey]
|
||||
AS
|
||||
|
||||
DELETE FROM [session].[Session] WHERE [Name] = @Name;
|
||||
DELETE FROM [session].[Session] WHERE [Id] = @Id;
|
||||
@@ -1,5 +1,5 @@
|
||||
CREATE PROCEDURE [session].[ReadSession]
|
||||
@Name [session].[SessionName]
|
||||
@Id [session].[SessionSurrogateKey]
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON -- Performance boost
|
||||
@@ -10,13 +10,12 @@ BEGIN
|
||||
|
||||
-- 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;
|
||||
Id,
|
||||
Player1Id,
|
||||
Player2Id,
|
||||
CreatedDate
|
||||
FROM [session].[Session]
|
||||
WHERE Id = @Id;
|
||||
|
||||
-- Player moves
|
||||
SELECT
|
||||
@@ -27,7 +26,7 @@ BEGIN
|
||||
FROM [session].[Move] mv
|
||||
INNER JOIN [session].[Session] sess ON sess.Id = mv.SessionId
|
||||
LEFT JOIN [session].Piece piece on piece.Id = mv.PieceIdFromHand
|
||||
WHERE sess.[Name] = @Name;
|
||||
WHERE sess.[Id] = @Id;
|
||||
|
||||
COMMIT
|
||||
END
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
CREATE PROCEDURE [session].[ReadSessionPlayerCount]
|
||||
@PlayerName [user].UserName
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @PlayerId as BIGINT;
|
||||
SELECT @PlayerId = Id
|
||||
FROM [user].[User]
|
||||
WHERE [Name] = @PlayerName;
|
||||
|
||||
-- Result set of sessions which @PlayerName participates in.
|
||||
SELECT
|
||||
[Name],
|
||||
CASE
|
||||
WHEN Player2Id IS NULL THEN 1
|
||||
ELSE 2
|
||||
END AS PlayerCount
|
||||
FROM [session].[Session]
|
||||
WHERE Player1Id = @PlayerId OR Player2Id = @PlayerId;
|
||||
|
||||
-- Result set of sessions which @PlayerName does not participate in.
|
||||
SELECT
|
||||
[Name],
|
||||
CASE
|
||||
WHEN Player2Id IS NULL THEN 1
|
||||
ELSE 2
|
||||
END AS PlayerCount
|
||||
FROM [session].[Session]
|
||||
WHERE Player1Id <> @PlayerId AND ISNULL(Player2Id, 0) <> @PlayerId;
|
||||
END
|
||||
@@ -0,0 +1,21 @@
|
||||
CREATE PROCEDURE [session].[ReadSessionsMetadata]
|
||||
@PlayerId [dbo].[AspNetUsersId]
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
-- Read all sessions, in this order:
|
||||
-- 1. sessions created by the logged-in user
|
||||
-- 2. any other sessions the logged-in user participates in
|
||||
-- 3. all other sessions
|
||||
SELECT
|
||||
Id, Player1Id, Player2Id, [Session].CreatedDate,
|
||||
case
|
||||
when Player1Id = @PlayerId then 0
|
||||
when Player2Id = @PlayerId then 1
|
||||
else 2
|
||||
end as OrderBy
|
||||
FROM [session].[Session]
|
||||
Order By OrderBy ASC, CreatedDate DESC
|
||||
|
||||
END
|
||||
@@ -1,13 +0,0 @@
|
||||
CREATE PROCEDURE [session].[ReadUsersBySession]
|
||||
@SessionName [session].[SessionName]
|
||||
AS
|
||||
|
||||
SELECT
|
||||
p1.[Name] as Player1Name,
|
||||
p1.DisplayName as Player1DisplayName,
|
||||
p2.[Name] as Player2Name,
|
||||
p2.DisplayName as Player2Displayname
|
||||
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] = @SessionName;
|
||||
@@ -1,16 +1,13 @@
|
||||
CREATE PROCEDURE [session].[SetPlayer2]
|
||||
@SessionName [session].[SessionName],
|
||||
@Player2Name [user].[UserName] NULL
|
||||
@SessionId [session].[SessionSurrogateKey],
|
||||
@PlayerId [dbo].[AspNetUsersId]
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @player2Id BIGINT;
|
||||
SELECT @player2Id = Id FROM [user].[User] WHERE [Name] = @Player2Name;
|
||||
|
||||
UPDATE sess
|
||||
SET Player2Id = @player2Id
|
||||
FROM [session].[Session] sess
|
||||
WHERE sess.[Name] = @SessionName;
|
||||
|
||||
UPDATE [session].[Session]
|
||||
SET Player2Id = @PlayerId
|
||||
FROM [session].[Session]
|
||||
WHERE Id = @SessionId;
|
||||
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user