Fix ISO country code references in database scripts and seeder (#148)

This commit is contained in:
Aaron Po
2026-02-12 23:29:42 -05:00
committed by GitHub
parent 7129e5679e
commit 82f0d26200
6 changed files with 40 additions and 37 deletions

View File

@@ -169,7 +169,7 @@ CREATE TABLE UserCredential -- delete credentials when user account is deleted
RevokedAt DATETIME NULL,
Timer ROWVERSION,
Timer ROWVERSION,
CONSTRAINT PK_UserCredential
PRIMARY KEY (UserCredentialID),
@@ -232,15 +232,15 @@ CREATE TABLE Country
CountryName NVARCHAR(100) NOT NULL,
ISO3616_1 CHAR(2) NOT NULL,
ISO3166_1 CHAR(2) NOT NULL,
Timer ROWVERSION,
CONSTRAINT PK_Country
PRIMARY KEY (CountryID),
CONSTRAINT AK_Country_ISO3616_1
UNIQUE (ISO3616_1)
CONSTRAINT AK_Country_ISO3166_1
UNIQUE (ISO3166_1)
);
----------------------------------------------------------------------------
@@ -253,7 +253,7 @@ CREATE TABLE StateProvince
StateProvinceName NVARCHAR(100) NOT NULL,
ISO3616_2 CHAR(6) NOT NULL,
ISO3166_2 CHAR(6) NOT NULL,
-- eg 'US-CA' for California, 'CA-ON' for Ontario
CountryID UNIQUEIDENTIFIER NOT NULL,
@@ -263,8 +263,8 @@ CREATE TABLE StateProvince
CONSTRAINT PK_StateProvince
PRIMARY KEY (StateProvinceID),
CONSTRAINT AK_StateProvince_ISO3616_2
UNIQUE (ISO3616_2),
CONSTRAINT AK_StateProvince_ISO3166_2
UNIQUE (ISO3166_2),
CONSTRAINT FK_StateProvince_Country
FOREIGN KEY (CountryID)
@@ -334,7 +334,8 @@ CREATE NONCLUSTERED INDEX IX_BreweryPost_PostedByID
----------------------------------------------------------------------------
----------------------------------------------------------------------------
CREATE TABLE BreweryPostLocation (
CREATE TABLE BreweryPostLocation
(
BreweryPostLocationID UNIQUEIDENTIFIER
CONSTRAINT DF_BreweryPostLocationID DEFAULT NEWID(),

View File

@@ -9,7 +9,7 @@ BEGIN
SELECT @CountryId = CountryID
FROM dbo.Country
WHERE ISO3616_1 = @CountryCode;
WHERE ISO3166_1 = @CountryCode;
RETURN @CountryId;
END;

View File

@@ -8,6 +8,6 @@ BEGIN
DECLARE @StateProvinceId UNIQUEIDENTIFIER;
SELECT @StateProvinceId = StateProvinceID
FROM dbo.StateProvince
WHERE ISO3616_2 = @StateProvinceCode;
WHERE ISO3166_2 = @StateProvinceCode;
RETURN @StateProvinceId;
END;

View File

@@ -1,6 +1,6 @@
CREATE OR ALTER PROCEDURE dbo.USP_CreateCountry(
@CountryName NVARCHAR(100),
@ISO3616_1 NVARCHAR(2)
@ISO3166_1 NVARCHAR(2)
)
AS
BEGIN
@@ -9,12 +9,13 @@ BEGIN
BEGIN TRANSACTION;
IF EXISTS (SELECT 1
FROM dbo.Country
WHERE ISO3616_1 = @ISO3616_1)
FROM dbo.Country
WHERE ISO3166_1 = @ISO3166_1)
THROW 50001, 'Country already exists', 1;
INSERT INTO dbo.Country
(CountryName, ISO3616_1)
VALUES (@CountryName, @ISO3616_1);
(CountryName, ISO3166_1)
VALUES
(@CountryName, @ISO3166_1);
COMMIT TRANSACTION;
END;

View File

@@ -1,6 +1,6 @@
CREATE OR ALTER PROCEDURE dbo.USP_CreateStateProvince(
@StateProvinceName NVARCHAR(100),
@ISO3616_2 NVARCHAR(6),
@ISO3166_2 NVARCHAR(6),
@CountryCode NVARCHAR(2)
)
AS
@@ -9,18 +9,19 @@ BEGIN
SET XACT_ABORT ON;
IF EXISTS (SELECT 1
FROM dbo.StateProvince
WHERE ISO3616_2 = @ISO3616_2)
FROM dbo.StateProvince
WHERE ISO3166_2 = @ISO3166_2)
RETURN;
DECLARE @CountryId UNIQUEIDENTIFIER = dbo.UDF_GetCountryIdByCode(@CountryCode);
IF @CountryId IS NULL
BEGIN
THROW 50001, 'Country does not exist', 1;
THROW 50001, 'Country does not exist', 1;
END
END
INSERT INTO dbo.StateProvince
(StateProvinceName, ISO3616_2, CountryID)
VALUES (@StateProvinceName, @ISO3616_2, @CountryId);
INSERT INTO dbo.StateProvince
(StateProvinceName, ISO3166_2, CountryID)
VALUES
(@StateProvinceName, @ISO3166_2, @CountryId);
END;

View File

@@ -277,7 +277,7 @@ internal class LocationSeeder : ISeeder
);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@CountryName", countryName);
command.Parameters.AddWithValue("@ISO3616_1", countryCode);
command.Parameters.AddWithValue("@ISO3166_1", countryCode);
await command.ExecuteNonQueryAsync();
}
@@ -298,7 +298,7 @@ internal class LocationSeeder : ISeeder
"@StateProvinceName",
stateProvinceName
);
command.Parameters.AddWithValue("@ISO3616_2", stateProvinceCode);
command.Parameters.AddWithValue("@ISO3166_2", stateProvinceCode);
command.Parameters.AddWithValue("@CountryCode", countryCode);
await command.ExecuteNonQueryAsync();