mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-02-16 10:42:08 +00:00
Add seed db c# project
This commit is contained in:
199
SeedDB/SeedStoredProcs.sql
Normal file
199
SeedDB/SeedStoredProcs.sql
Normal file
@@ -0,0 +1,199 @@
|
||||
|
||||
USE biergarten;
|
||||
GO
|
||||
|
||||
CREATE OR ALTER PROCEDURE dbo.USP_AddTestUsers
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
DECLARE @FullNames TABLE
|
||||
(FirstName NVARCHAR(128),
|
||||
LastName NVARCHAR(128));
|
||||
|
||||
INSERT INTO @FullNames
|
||||
(FirstName, LastName)
|
||||
VALUES
|
||||
('Aarya', 'Mathews'),
|
||||
('Aiden', 'Wells'),
|
||||
('Aleena', 'Gonzalez'),
|
||||
('Alessandra', 'Nelson'),
|
||||
('Amari', 'Tucker'),
|
||||
('Ameer', 'Huff'),
|
||||
('Amirah', 'Hicks'),
|
||||
('Analia', 'Dominguez'),
|
||||
('Anne', 'Jenkins'),
|
||||
('Apollo', 'Davis'),
|
||||
('Arianna', 'White'),
|
||||
('Aubree', 'Moore'),
|
||||
('Aubrielle', 'Raymond'),
|
||||
('Aydin', 'Odom'),
|
||||
('Bowen', 'Casey'),
|
||||
('Brock', 'Huber'),
|
||||
('Caiden', 'Strong'),
|
||||
('Cecilia', 'Rosales'),
|
||||
('Celeste', 'Barber'),
|
||||
('Chance', 'Small'),
|
||||
('Clara', 'Roberts'),
|
||||
('Collins', 'Brandt'),
|
||||
('Damir', 'Wallace'),
|
||||
('Declan', 'Crawford'),
|
||||
('Dennis', 'Decker'),
|
||||
('Dylan', 'Lang'),
|
||||
('Eliza', 'Kane'),
|
||||
('Elle', 'Poole'),
|
||||
('Elliott', 'Miles'),
|
||||
('Emelia', 'Lucas'),
|
||||
('Emilia', 'Simpson'),
|
||||
('Emmett', 'Lugo'),
|
||||
('Ethan', 'Stephens'),
|
||||
('Etta', 'Woods'),
|
||||
('Gael', 'Moran'),
|
||||
('Grant', 'Benson'),
|
||||
('Gwen', 'James'),
|
||||
('Huxley', 'Chen'),
|
||||
('Isabella', 'Fisher'),
|
||||
('Ivan', 'Mathis'),
|
||||
('Jamir', 'McMillan'),
|
||||
('Jaxson', 'Shields'),
|
||||
('Jimmy', 'Richmond'),
|
||||
('Josiah', 'Flores'),
|
||||
('Kaden', 'Enriquez'),
|
||||
('Kai', 'Lawson'),
|
||||
('Karsyn', 'Adkins'),
|
||||
('Karsyn', 'Proctor'),
|
||||
('Kayden', 'Henson'),
|
||||
('Kaylie', 'Spears'),
|
||||
('Kinslee', 'Jones'),
|
||||
('Kora', 'Guerra'),
|
||||
('Lane', 'Skinner'),
|
||||
('Laylani', 'Christian'),
|
||||
('Ledger', 'Carroll'),
|
||||
('Leilany', 'Small'),
|
||||
('Leland', 'McCall'),
|
||||
('Leonard', 'Calhoun'),
|
||||
('Levi', 'Ochoa'),
|
||||
('Lillie', 'Vang'),
|
||||
('Lola', 'Sheppard'),
|
||||
('Luciana', 'Poole'),
|
||||
('Maddox', 'Hughes'),
|
||||
('Mara', 'Blackwell'),
|
||||
('Marcellus', 'Bartlett'),
|
||||
('Margo', 'Koch'),
|
||||
('Maurice', 'Gibson'),
|
||||
('Maxton', 'Dodson'),
|
||||
('Mia', 'Parrish'),
|
||||
('Millie', 'Fuentes'),
|
||||
('Nellie', 'Villanueva'),
|
||||
('Nicolas', 'Mata'),
|
||||
('Nicolas', 'Miller'),
|
||||
('Oakleigh', 'Foster'),
|
||||
('Octavia', 'Pierce'),
|
||||
('Paisley', 'Allison'),
|
||||
('Quincy', 'Andersen'),
|
||||
('Quincy', 'Frazier'),
|
||||
('Raiden', 'Roberts'),
|
||||
('Raquel', 'Lara'),
|
||||
('Rudy', 'McIntosh'),
|
||||
('Salvador', 'Stein'),
|
||||
('Samantha', 'Dickson'),
|
||||
('Solomon', 'Richards'),
|
||||
('Sylvia', 'Hanna'),
|
||||
('Talia', 'Trujillo'),
|
||||
('Thalia', 'Farrell'),
|
||||
('Trent', 'Mayo'),
|
||||
('Trinity', 'Cummings'),
|
||||
('Ty', 'Perry'),
|
||||
('Tyler', 'Romero'),
|
||||
('Valeria', 'Pierce'),
|
||||
('Vance', 'Neal'),
|
||||
('Whitney', 'Bell'),
|
||||
('Wilder', 'Graves'),
|
||||
('William', 'Logan'),
|
||||
('Zara', 'Wilkinson'),
|
||||
('Zaria', 'Gibson'),
|
||||
('Zion', 'Watkins'),
|
||||
('Zoie', 'Armstrong');
|
||||
|
||||
|
||||
INSERT INTO dbo.UserAccount
|
||||
(Username, FirstName, LastName, Email, DateOfBirth)
|
||||
SELECT
|
||||
LEFT(LOWER(CONCAT(fn.FirstName, '.', fn.LastName)), 64) AS Username,
|
||||
fn.FirstName,
|
||||
fn.LastName,
|
||||
LEFT(LOWER(CONCAT(fn.FirstName, '.', fn.LastName, '@example.com')), 128) AS Email,
|
||||
|
||||
-- date of birth: pick age between 18 and 47 (18 + 0..29)
|
||||
DATEADD(YEAR, -(19 + ABS(CHECKSUM(NEWID())) % 30), CAST(GETDATE() AS DATE))
|
||||
FROM @FullNames AS fn;
|
||||
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END;
|
||||
GO
|
||||
|
||||
CREATE TYPE TblUserHashes AS TABLE
|
||||
(
|
||||
UserAccountId UNIQUEIDENTIFIER NOT NULL,
|
||||
Hash NVARCHAR(MAX) NOT NULL
|
||||
);
|
||||
GO
|
||||
|
||||
-- Stored procedure to insert Argon2 hashes
|
||||
CREATE OR ALTER PROCEDURE dbo.USP_AddUserCredentials
|
||||
(
|
||||
@Hash dbo.TblUserHashes READONLY
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
INSERT INTO dbo.UserCredential
|
||||
(UserAccountId, Hash)
|
||||
SELECT
|
||||
uah.UserAccountId,
|
||||
uah.Hash
|
||||
FROM @Hash AS uah;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END;
|
||||
GO
|
||||
|
||||
CREATE OR ALTER PROCEDURE dbo.USP_CreateUserVerification
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
INSERT INTO dbo.UserVerification
|
||||
(UserAccountId)
|
||||
SELECT
|
||||
ua.UserAccountID
|
||||
FROM dbo.UserAccount AS ua
|
||||
WHERE NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM dbo.UserVerification AS uv
|
||||
WHERE uv.UserAccountId = ua.UserAccountID);
|
||||
|
||||
|
||||
IF (SELECT COUNT(*)
|
||||
FROM dbo.UserVerification) != (SELECT COUNT(*)
|
||||
FROM dbo.UserAccount)
|
||||
BEGIN
|
||||
RAISERROR('UserVerification count does not match UserAccount count after insertion.', 16, 1);
|
||||
ROLLBACK TRANSACTION;
|
||||
RETURN;
|
||||
END
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END
|
||||
GO
|
||||
Reference in New Issue
Block a user