diff --git a/src/Core/API/API.Core/Controllers/AuthController.cs b/src/Core/API/API.Core/Controllers/AuthController.cs
index 91440ff..62a9018 100644
--- a/src/Core/API/API.Core/Controllers/AuthController.cs
+++ b/src/Core/API/API.Core/Controllers/AuthController.cs
@@ -1,6 +1,6 @@
using API.Core.Contracts.Auth;
using API.Core.Contracts.Common;
-using Domain.Core.Entities;
+using Domain.Entities;
using Infrastructure.Jwt;
using Microsoft.AspNetCore.Mvc;
using Service.Core.Auth;
diff --git a/src/Core/API/API.Core/Controllers/UserController.cs b/src/Core/API/API.Core/Controllers/UserController.cs
index 5077e44..6039ce6 100644
--- a/src/Core/API/API.Core/Controllers/UserController.cs
+++ b/src/Core/API/API.Core/Controllers/UserController.cs
@@ -1,4 +1,4 @@
-using Domain.Core.Entities;
+using Domain.Entities;
using Microsoft.AspNetCore.Mvc;
using Service.Core.User;
diff --git a/src/Core/Core.slnx b/src/Core/Core.slnx
index 293b22b..a9f0a9f 100644
--- a/src/Core/Core.slnx
+++ b/src/Core/Core.slnx
@@ -13,8 +13,8 @@
-
+
diff --git a/src/Core/Database/Database.Seed/ISeeder.cs b/src/Core/Database/Database.Seed/ISeeder.cs
index 1ecf897..b3a414e 100644
--- a/src/Core/Database/Database.Seed/ISeeder.cs
+++ b/src/Core/Database/Database.Seed/ISeeder.cs
@@ -2,8 +2,5 @@ using Microsoft.Data.SqlClient;
namespace DBSeed
{
- internal interface ISeeder
- {
- Task SeedAsync(SqlConnection connection);
- }
+ Task SeedAsync(SqlConnection connection);
}
\ No newline at end of file
diff --git a/src/Core/Database/Database.Seed/LocationSeeder.cs b/src/Core/Database/Database.Seed/LocationSeeder.cs
index 52d3d78..9e42050 100644
--- a/src/Core/Database/Database.Seed/LocationSeeder.cs
+++ b/src/Core/Database/Database.Seed/LocationSeeder.cs
@@ -1,328 +1,326 @@
using System.Data;
using Microsoft.Data.SqlClient;
-namespace DBSeed
+namespace Database.Seed;
+
+internal class LocationSeeder : ISeeder
{
+ private static readonly IReadOnlyList<(
+ string CountryName,
+ string CountryCode
+ )> Countries =
+ [
+ ("Canada", "CA"),
+ ("Mexico", "MX"),
+ ("United States", "US"),
+ ];
- internal class LocationSeeder : ISeeder
+ private static IReadOnlyList<(string StateProvinceName, string StateProvinceCode, string CountryCode)> States
{
- private static readonly IReadOnlyList<(
- string CountryName,
- string CountryCode
- )> Countries =
- [
- ("Canada", "CA"),
- ("Mexico", "MX"),
- ("United States", "US"),
- ];
+ get;
+ } =
+ [
+ ("Alabama", "US-AL", "US"),
+ ("Alaska", "US-AK", "US"),
+ ("Arizona", "US-AZ", "US"),
+ ("Arkansas", "US-AR", "US"),
+ ("California", "US-CA", "US"),
+ ("Colorado", "US-CO", "US"),
+ ("Connecticut", "US-CT", "US"),
+ ("Delaware", "US-DE", "US"),
+ ("Florida", "US-FL", "US"),
+ ("Georgia", "US-GA", "US"),
+ ("Hawaii", "US-HI", "US"),
+ ("Idaho", "US-ID", "US"),
+ ("Illinois", "US-IL", "US"),
+ ("Indiana", "US-IN", "US"),
+ ("Iowa", "US-IA", "US"),
+ ("Kansas", "US-KS", "US"),
+ ("Kentucky", "US-KY", "US"),
+ ("Louisiana", "US-LA", "US"),
+ ("Maine", "US-ME", "US"),
+ ("Maryland", "US-MD", "US"),
+ ("Massachusetts", "US-MA", "US"),
+ ("Michigan", "US-MI", "US"),
+ ("Minnesota", "US-MN", "US"),
+ ("Mississippi", "US-MS", "US"),
+ ("Missouri", "US-MO", "US"),
+ ("Montana", "US-MT", "US"),
+ ("Nebraska", "US-NE", "US"),
+ ("Nevada", "US-NV", "US"),
+ ("New Hampshire", "US-NH", "US"),
+ ("New Jersey", "US-NJ", "US"),
+ ("New Mexico", "US-NM", "US"),
+ ("New York", "US-NY", "US"),
+ ("North Carolina", "US-NC", "US"),
+ ("North Dakota", "US-ND", "US"),
+ ("Ohio", "US-OH", "US"),
+ ("Oklahoma", "US-OK", "US"),
+ ("Oregon", "US-OR", "US"),
+ ("Pennsylvania", "US-PA", "US"),
+ ("Rhode Island", "US-RI", "US"),
+ ("South Carolina", "US-SC", "US"),
+ ("South Dakota", "US-SD", "US"),
+ ("Tennessee", "US-TN", "US"),
+ ("Texas", "US-TX", "US"),
+ ("Utah", "US-UT", "US"),
+ ("Vermont", "US-VT", "US"),
+ ("Virginia", "US-VA", "US"),
+ ("Washington", "US-WA", "US"),
+ ("West Virginia", "US-WV", "US"),
+ ("Wisconsin", "US-WI", "US"),
+ ("Wyoming", "US-WY", "US"),
+ ("District of Columbia", "US-DC", "US"),
+ ("Puerto Rico", "US-PR", "US"),
+ ("U.S. Virgin Islands", "US-VI", "US"),
+ ("Guam", "US-GU", "US"),
+ ("Northern Mariana Islands", "US-MP", "US"),
+ ("American Samoa", "US-AS", "US"),
+ ("Ontario", "CA-ON", "CA"),
+ ("Québec", "CA-QC", "CA"),
+ ("Nova Scotia", "CA-NS", "CA"),
+ ("New Brunswick", "CA-NB", "CA"),
+ ("Manitoba", "CA-MB", "CA"),
+ ("British Columbia", "CA-BC", "CA"),
+ ("Prince Edward Island", "CA-PE", "CA"),
+ ("Saskatchewan", "CA-SK", "CA"),
+ ("Alberta", "CA-AB", "CA"),
+ ("Newfoundland and Labrador", "CA-NL", "CA"),
+ ("Northwest Territories", "CA-NT", "CA"),
+ ("Yukon", "CA-YT", "CA"),
+ ("Nunavut", "CA-NU", "CA"),
+ ("Aguascalientes", "MX-AGU", "MX"),
+ ("Baja California", "MX-BCN", "MX"),
+ ("Baja California Sur", "MX-BCS", "MX"),
+ ("Campeche", "MX-CAM", "MX"),
+ ("Chiapas", "MX-CHP", "MX"),
+ ("Chihuahua", "MX-CHH", "MX"),
+ ("Coahuila de Zaragoza", "MX-COA", "MX"),
+ ("Colima", "MX-COL", "MX"),
+ ("Durango", "MX-DUR", "MX"),
+ ("Guanajuato", "MX-GUA", "MX"),
+ ("Guerrero", "MX-GRO", "MX"),
+ ("Hidalgo", "MX-HID", "MX"),
+ ("Jalisco", "MX-JAL", "MX"),
+ ("México State", "MX-MEX", "MX"),
+ ("Michoacán de Ocampo", "MX-MIC", "MX"),
+ ("Morelos", "MX-MOR", "MX"),
+ ("Nayarit", "MX-NAY", "MX"),
+ ("Nuevo León", "MX-NLE", "MX"),
+ ("Oaxaca", "MX-OAX", "MX"),
+ ("Puebla", "MX-PUE", "MX"),
+ ("Querétaro", "MX-QUE", "MX"),
+ ("Quintana Roo", "MX-ROO", "MX"),
+ ("San Luis Potosí", "MX-SLP", "MX"),
+ ("Sinaloa", "MX-SIN", "MX"),
+ ("Sonora", "MX-SON", "MX"),
+ ("Tabasco", "MX-TAB", "MX"),
+ ("Tamaulipas", "MX-TAM", "MX"),
+ ("Tlaxcala", "MX-TLA", "MX"),
+ ("Veracruz de Ignacio de la Llave", "MX-VER", "MX"),
+ ("Yucatán", "MX-YUC", "MX"),
+ ("Zacatecas", "MX-ZAC", "MX"),
+ ("Ciudad de México", "MX-CMX", "MX"),
+ ];
- private static IReadOnlyList<(string StateProvinceName, string StateProvinceCode, string CountryCode)> States
+ private static IReadOnlyList<(string StateProvinceCode, string CityName)> Cities { get; } =
+ [
+ ("US-CA", "Los Angeles"),
+ ("US-CA", "San Diego"),
+ ("US-CA", "San Francisco"),
+ ("US-CA", "Sacramento"),
+ ("US-TX", "Houston"),
+ ("US-TX", "Dallas"),
+ ("US-TX", "Austin"),
+ ("US-TX", "San Antonio"),
+ ("US-FL", "Miami"),
+ ("US-FL", "Orlando"),
+ ("US-FL", "Tampa"),
+ ("US-NY", "New York"),
+ ("US-NY", "Buffalo"),
+ ("US-NY", "Rochester"),
+ ("US-IL", "Chicago"),
+ ("US-IL", "Springfield"),
+ ("US-PA", "Philadelphia"),
+ ("US-PA", "Pittsburgh"),
+ ("US-AZ", "Phoenix"),
+ ("US-AZ", "Tucson"),
+ ("US-CO", "Denver"),
+ ("US-CO", "Colorado Springs"),
+ ("US-MA", "Boston"),
+ ("US-MA", "Worcester"),
+ ("US-WA", "Seattle"),
+ ("US-WA", "Spokane"),
+ ("US-GA", "Atlanta"),
+ ("US-GA", "Savannah"),
+ ("US-NV", "Las Vegas"),
+ ("US-NV", "Reno"),
+ ("US-MI", "Detroit"),
+ ("US-MI", "Grand Rapids"),
+ ("US-MN", "Minneapolis"),
+ ("US-MN", "Saint Paul"),
+ ("US-OH", "Columbus"),
+ ("US-OH", "Cleveland"),
+ ("US-OR", "Portland"),
+ ("US-OR", "Salem"),
+ ("US-TN", "Nashville"),
+ ("US-TN", "Memphis"),
+ ("US-VA", "Richmond"),
+ ("US-VA", "Virginia Beach"),
+ ("US-MD", "Baltimore"),
+ ("US-MD", "Frederick"),
+ ("US-DC", "Washington"),
+ ("US-UT", "Salt Lake City"),
+ ("US-UT", "Provo"),
+ ("US-LA", "New Orleans"),
+ ("US-LA", "Baton Rouge"),
+ ("US-KY", "Louisville"),
+ ("US-KY", "Lexington"),
+ ("US-IA", "Des Moines"),
+ ("US-IA", "Cedar Rapids"),
+ ("US-OK", "Oklahoma City"),
+ ("US-OK", "Tulsa"),
+ ("US-NE", "Omaha"),
+ ("US-NE", "Lincoln"),
+ ("US-MO", "Kansas City"),
+ ("US-MO", "St. Louis"),
+ ("US-NC", "Charlotte"),
+ ("US-NC", "Raleigh"),
+ ("US-SC", "Columbia"),
+ ("US-SC", "Charleston"),
+ ("US-WI", "Milwaukee"),
+ ("US-WI", "Madison"),
+ ("US-MN", "Duluth"),
+ ("US-AK", "Anchorage"),
+ ("US-HI", "Honolulu"),
+ ("CA-ON", "Toronto"),
+ ("CA-ON", "Ottawa"),
+ ("CA-QC", "Montréal"),
+ ("CA-QC", "Québec City"),
+ ("CA-BC", "Vancouver"),
+ ("CA-BC", "Victoria"),
+ ("CA-AB", "Calgary"),
+ ("CA-AB", "Edmonton"),
+ ("CA-MB", "Winnipeg"),
+ ("CA-NS", "Halifax"),
+ ("CA-SK", "Saskatoon"),
+ ("CA-SK", "Regina"),
+ ("CA-NB", "Moncton"),
+ ("CA-NB", "Saint John"),
+ ("CA-PE", "Charlottetown"),
+ ("CA-NL", "St. John's"),
+ ("CA-ON", "Hamilton"),
+ ("CA-ON", "London"),
+ ("CA-QC", "Gatineau"),
+ ("CA-QC", "Laval"),
+ ("CA-BC", "Kelowna"),
+ ("CA-AB", "Red Deer"),
+ ("CA-MB", "Brandon"),
+ ("MX-CMX", "Ciudad de México"),
+ ("MX-JAL", "Guadalajara"),
+ ("MX-NLE", "Monterrey"),
+ ("MX-PUE", "Puebla"),
+ ("MX-ROO", "Cancún"),
+ ("MX-GUA", "Guanajuato"),
+ ("MX-MIC", "Morelia"),
+ ("MX-BCN", "Tijuana"),
+ ("MX-JAL", "Zapopan"),
+ ("MX-NLE", "San Nicolás"),
+ ("MX-CAM", "Campeche"),
+ ("MX-TAB", "Villahermosa"),
+ ("MX-VER", "Veracruz"),
+ ("MX-OAX", "Oaxaca"),
+ ("MX-SLP", "San Luis Potosí"),
+ ("MX-CHH", "Chihuahua"),
+ ("MX-AGU", "Aguascalientes"),
+ ("MX-MEX", "Toluca"),
+ ("MX-COA", "Saltillo"),
+ ("MX-BCS", "La Paz"),
+ ("MX-NAY", "Tepic"),
+ ("MX-ZAC", "Zacatecas"),
+ ];
+
+ public async Task SeedAsync(SqlConnection connection)
+ {
+ foreach (var (countryName, countryCode) in Countries)
{
- get;
- } =
- [
- ("Alabama", "US-AL", "US"),
- ("Alaska", "US-AK", "US"),
- ("Arizona", "US-AZ", "US"),
- ("Arkansas", "US-AR", "US"),
- ("California", "US-CA", "US"),
- ("Colorado", "US-CO", "US"),
- ("Connecticut", "US-CT", "US"),
- ("Delaware", "US-DE", "US"),
- ("Florida", "US-FL", "US"),
- ("Georgia", "US-GA", "US"),
- ("Hawaii", "US-HI", "US"),
- ("Idaho", "US-ID", "US"),
- ("Illinois", "US-IL", "US"),
- ("Indiana", "US-IN", "US"),
- ("Iowa", "US-IA", "US"),
- ("Kansas", "US-KS", "US"),
- ("Kentucky", "US-KY", "US"),
- ("Louisiana", "US-LA", "US"),
- ("Maine", "US-ME", "US"),
- ("Maryland", "US-MD", "US"),
- ("Massachusetts", "US-MA", "US"),
- ("Michigan", "US-MI", "US"),
- ("Minnesota", "US-MN", "US"),
- ("Mississippi", "US-MS", "US"),
- ("Missouri", "US-MO", "US"),
- ("Montana", "US-MT", "US"),
- ("Nebraska", "US-NE", "US"),
- ("Nevada", "US-NV", "US"),
- ("New Hampshire", "US-NH", "US"),
- ("New Jersey", "US-NJ", "US"),
- ("New Mexico", "US-NM", "US"),
- ("New York", "US-NY", "US"),
- ("North Carolina", "US-NC", "US"),
- ("North Dakota", "US-ND", "US"),
- ("Ohio", "US-OH", "US"),
- ("Oklahoma", "US-OK", "US"),
- ("Oregon", "US-OR", "US"),
- ("Pennsylvania", "US-PA", "US"),
- ("Rhode Island", "US-RI", "US"),
- ("South Carolina", "US-SC", "US"),
- ("South Dakota", "US-SD", "US"),
- ("Tennessee", "US-TN", "US"),
- ("Texas", "US-TX", "US"),
- ("Utah", "US-UT", "US"),
- ("Vermont", "US-VT", "US"),
- ("Virginia", "US-VA", "US"),
- ("Washington", "US-WA", "US"),
- ("West Virginia", "US-WV", "US"),
- ("Wisconsin", "US-WI", "US"),
- ("Wyoming", "US-WY", "US"),
- ("District of Columbia", "US-DC", "US"),
- ("Puerto Rico", "US-PR", "US"),
- ("U.S. Virgin Islands", "US-VI", "US"),
- ("Guam", "US-GU", "US"),
- ("Northern Mariana Islands", "US-MP", "US"),
- ("American Samoa", "US-AS", "US"),
- ("Ontario", "CA-ON", "CA"),
- ("Québec", "CA-QC", "CA"),
- ("Nova Scotia", "CA-NS", "CA"),
- ("New Brunswick", "CA-NB", "CA"),
- ("Manitoba", "CA-MB", "CA"),
- ("British Columbia", "CA-BC", "CA"),
- ("Prince Edward Island", "CA-PE", "CA"),
- ("Saskatchewan", "CA-SK", "CA"),
- ("Alberta", "CA-AB", "CA"),
- ("Newfoundland and Labrador", "CA-NL", "CA"),
- ("Northwest Territories", "CA-NT", "CA"),
- ("Yukon", "CA-YT", "CA"),
- ("Nunavut", "CA-NU", "CA"),
- ("Aguascalientes", "MX-AGU", "MX"),
- ("Baja California", "MX-BCN", "MX"),
- ("Baja California Sur", "MX-BCS", "MX"),
- ("Campeche", "MX-CAM", "MX"),
- ("Chiapas", "MX-CHP", "MX"),
- ("Chihuahua", "MX-CHH", "MX"),
- ("Coahuila de Zaragoza", "MX-COA", "MX"),
- ("Colima", "MX-COL", "MX"),
- ("Durango", "MX-DUR", "MX"),
- ("Guanajuato", "MX-GUA", "MX"),
- ("Guerrero", "MX-GRO", "MX"),
- ("Hidalgo", "MX-HID", "MX"),
- ("Jalisco", "MX-JAL", "MX"),
- ("México State", "MX-MEX", "MX"),
- ("Michoacán de Ocampo", "MX-MIC", "MX"),
- ("Morelos", "MX-MOR", "MX"),
- ("Nayarit", "MX-NAY", "MX"),
- ("Nuevo León", "MX-NLE", "MX"),
- ("Oaxaca", "MX-OAX", "MX"),
- ("Puebla", "MX-PUE", "MX"),
- ("Querétaro", "MX-QUE", "MX"),
- ("Quintana Roo", "MX-ROO", "MX"),
- ("San Luis Potosí", "MX-SLP", "MX"),
- ("Sinaloa", "MX-SIN", "MX"),
- ("Sonora", "MX-SON", "MX"),
- ("Tabasco", "MX-TAB", "MX"),
- ("Tamaulipas", "MX-TAM", "MX"),
- ("Tlaxcala", "MX-TLA", "MX"),
- ("Veracruz de Ignacio de la Llave", "MX-VER", "MX"),
- ("Yucatán", "MX-YUC", "MX"),
- ("Zacatecas", "MX-ZAC", "MX"),
- ("Ciudad de México", "MX-CMX", "MX"),
- ];
-
- private static IReadOnlyList<(string StateProvinceCode, string CityName)> Cities { get; } =
- [
- ("US-CA", "Los Angeles"),
- ("US-CA", "San Diego"),
- ("US-CA", "San Francisco"),
- ("US-CA", "Sacramento"),
- ("US-TX", "Houston"),
- ("US-TX", "Dallas"),
- ("US-TX", "Austin"),
- ("US-TX", "San Antonio"),
- ("US-FL", "Miami"),
- ("US-FL", "Orlando"),
- ("US-FL", "Tampa"),
- ("US-NY", "New York"),
- ("US-NY", "Buffalo"),
- ("US-NY", "Rochester"),
- ("US-IL", "Chicago"),
- ("US-IL", "Springfield"),
- ("US-PA", "Philadelphia"),
- ("US-PA", "Pittsburgh"),
- ("US-AZ", "Phoenix"),
- ("US-AZ", "Tucson"),
- ("US-CO", "Denver"),
- ("US-CO", "Colorado Springs"),
- ("US-MA", "Boston"),
- ("US-MA", "Worcester"),
- ("US-WA", "Seattle"),
- ("US-WA", "Spokane"),
- ("US-GA", "Atlanta"),
- ("US-GA", "Savannah"),
- ("US-NV", "Las Vegas"),
- ("US-NV", "Reno"),
- ("US-MI", "Detroit"),
- ("US-MI", "Grand Rapids"),
- ("US-MN", "Minneapolis"),
- ("US-MN", "Saint Paul"),
- ("US-OH", "Columbus"),
- ("US-OH", "Cleveland"),
- ("US-OR", "Portland"),
- ("US-OR", "Salem"),
- ("US-TN", "Nashville"),
- ("US-TN", "Memphis"),
- ("US-VA", "Richmond"),
- ("US-VA", "Virginia Beach"),
- ("US-MD", "Baltimore"),
- ("US-MD", "Frederick"),
- ("US-DC", "Washington"),
- ("US-UT", "Salt Lake City"),
- ("US-UT", "Provo"),
- ("US-LA", "New Orleans"),
- ("US-LA", "Baton Rouge"),
- ("US-KY", "Louisville"),
- ("US-KY", "Lexington"),
- ("US-IA", "Des Moines"),
- ("US-IA", "Cedar Rapids"),
- ("US-OK", "Oklahoma City"),
- ("US-OK", "Tulsa"),
- ("US-NE", "Omaha"),
- ("US-NE", "Lincoln"),
- ("US-MO", "Kansas City"),
- ("US-MO", "St. Louis"),
- ("US-NC", "Charlotte"),
- ("US-NC", "Raleigh"),
- ("US-SC", "Columbia"),
- ("US-SC", "Charleston"),
- ("US-WI", "Milwaukee"),
- ("US-WI", "Madison"),
- ("US-MN", "Duluth"),
- ("US-AK", "Anchorage"),
- ("US-HI", "Honolulu"),
- ("CA-ON", "Toronto"),
- ("CA-ON", "Ottawa"),
- ("CA-QC", "Montréal"),
- ("CA-QC", "Québec City"),
- ("CA-BC", "Vancouver"),
- ("CA-BC", "Victoria"),
- ("CA-AB", "Calgary"),
- ("CA-AB", "Edmonton"),
- ("CA-MB", "Winnipeg"),
- ("CA-NS", "Halifax"),
- ("CA-SK", "Saskatoon"),
- ("CA-SK", "Regina"),
- ("CA-NB", "Moncton"),
- ("CA-NB", "Saint John"),
- ("CA-PE", "Charlottetown"),
- ("CA-NL", "St. John's"),
- ("CA-ON", "Hamilton"),
- ("CA-ON", "London"),
- ("CA-QC", "Gatineau"),
- ("CA-QC", "Laval"),
- ("CA-BC", "Kelowna"),
- ("CA-AB", "Red Deer"),
- ("CA-MB", "Brandon"),
- ("MX-CMX", "Ciudad de México"),
- ("MX-JAL", "Guadalajara"),
- ("MX-NLE", "Monterrey"),
- ("MX-PUE", "Puebla"),
- ("MX-ROO", "Cancún"),
- ("MX-GUA", "Guanajuato"),
- ("MX-MIC", "Morelia"),
- ("MX-BCN", "Tijuana"),
- ("MX-JAL", "Zapopan"),
- ("MX-NLE", "San Nicolás"),
- ("MX-CAM", "Campeche"),
- ("MX-TAB", "Villahermosa"),
- ("MX-VER", "Veracruz"),
- ("MX-OAX", "Oaxaca"),
- ("MX-SLP", "San Luis Potosí"),
- ("MX-CHH", "Chihuahua"),
- ("MX-AGU", "Aguascalientes"),
- ("MX-MEX", "Toluca"),
- ("MX-COA", "Saltillo"),
- ("MX-BCS", "La Paz"),
- ("MX-NAY", "Tepic"),
- ("MX-ZAC", "Zacatecas"),
- ];
-
- public async Task SeedAsync(SqlConnection connection)
- {
- foreach (var (countryName, countryCode) in Countries)
- {
- await CreateCountryAsync(connection, countryName, countryCode);
- }
-
- foreach (
- var (stateProvinceName, stateProvinceCode, countryCode) in States
- )
- {
- await CreateStateProvinceAsync(
- connection,
- stateProvinceName,
- stateProvinceCode,
- countryCode
- );
- }
-
- foreach (var (stateProvinceCode, cityName) in Cities)
- {
- await CreateCityAsync(connection, cityName, stateProvinceCode);
- }
+ await CreateCountryAsync(connection, countryName, countryCode);
}
- private static async Task CreateCountryAsync(
- SqlConnection connection,
- string countryName,
- string countryCode
+ foreach (
+ var (stateProvinceName, stateProvinceCode, countryCode) in States
)
{
- await using var command = new SqlCommand(
- "dbo.USP_CreateCountry",
- connection
+ await CreateStateProvinceAsync(
+ connection,
+ stateProvinceName,
+ stateProvinceCode,
+ countryCode
);
- command.CommandType = CommandType.StoredProcedure;
- command.Parameters.AddWithValue("@CountryName", countryName);
- command.Parameters.AddWithValue("@ISO3616_1", countryCode);
-
- await command.ExecuteNonQueryAsync();
}
- private static async Task CreateStateProvinceAsync(
- SqlConnection connection,
- string stateProvinceName,
- string stateProvinceCode,
- string countryCode
- )
+ foreach (var (stateProvinceCode, cityName) in Cities)
{
- await using var command = new SqlCommand(
- "dbo.USP_CreateStateProvince",
- connection
- );
- command.CommandType = CommandType.StoredProcedure;
- command.Parameters.AddWithValue(
- "@StateProvinceName",
- stateProvinceName
- );
- command.Parameters.AddWithValue("@ISO3616_2", stateProvinceCode);
- command.Parameters.AddWithValue("@CountryCode", countryCode);
-
- await command.ExecuteNonQueryAsync();
- }
-
- private static async Task CreateCityAsync(
- SqlConnection connection,
- string cityName,
- string stateProvinceCode
- )
- {
- await using var command = new SqlCommand(
- "dbo.USP_CreateCity",
- connection
- );
- command.CommandType = CommandType.StoredProcedure;
- command.Parameters.AddWithValue("@CityName", cityName);
- command.Parameters.AddWithValue(
- "@StateProvinceCode",
- stateProvinceCode
- );
-
- await command.ExecuteNonQueryAsync();
+ await CreateCityAsync(connection, cityName, stateProvinceCode);
}
}
+
+ private static async Task CreateCountryAsync(
+ SqlConnection connection,
+ string countryName,
+ string countryCode
+ )
+ {
+ await using var command = new SqlCommand(
+ "dbo.USP_CreateCountry",
+ connection
+ );
+ command.CommandType = CommandType.StoredProcedure;
+ command.Parameters.AddWithValue("@CountryName", countryName);
+ command.Parameters.AddWithValue("@ISO3616_1", countryCode);
+
+ await command.ExecuteNonQueryAsync();
+ }
+
+ private static async Task CreateStateProvinceAsync(
+ SqlConnection connection,
+ string stateProvinceName,
+ string stateProvinceCode,
+ string countryCode
+ )
+ {
+ await using var command = new SqlCommand(
+ "dbo.USP_CreateStateProvince",
+ connection
+ );
+ command.CommandType = CommandType.StoredProcedure;
+ command.Parameters.AddWithValue(
+ "@StateProvinceName",
+ stateProvinceName
+ );
+ command.Parameters.AddWithValue("@ISO3616_2", stateProvinceCode);
+ command.Parameters.AddWithValue("@CountryCode", countryCode);
+
+ await command.ExecuteNonQueryAsync();
+ }
+
+ private static async Task CreateCityAsync(
+ SqlConnection connection,
+ string cityName,
+ string stateProvinceCode
+ )
+ {
+ await using var command = new SqlCommand(
+ "dbo.USP_CreateCity",
+ connection
+ );
+ command.CommandType = CommandType.StoredProcedure;
+ command.Parameters.AddWithValue("@CityName", cityName);
+ command.Parameters.AddWithValue(
+ "@StateProvinceCode",
+ stateProvinceCode
+ );
+
+ await command.ExecuteNonQueryAsync();
+ }
}
\ No newline at end of file
diff --git a/src/Core/Database/Database.Seed/Program.cs b/src/Core/Database/Database.Seed/Program.cs
index e7fff96..c7d064d 100644
--- a/src/Core/Database/Database.Seed/Program.cs
+++ b/src/Core/Database/Database.Seed/Program.cs
@@ -1,24 +1,24 @@
-using DBSeed;
-using Microsoft.Data.SqlClient;
+using Microsoft.Data.SqlClient;
using DbUp;
using System.Reflection;
+using Database.Seed;
string BuildConnectionString()
{
var server = Environment.GetEnvironmentVariable("DB_SERVER")
- ?? throw new InvalidOperationException("DB_SERVER environment variable is not set");
+ ?? throw new InvalidOperationException("DB_SERVER environment variable is not set");
var dbName = Environment.GetEnvironmentVariable("DB_NAME")
- ?? throw new InvalidOperationException("DB_NAME environment variable is not set");
+ ?? throw new InvalidOperationException("DB_NAME environment variable is not set");
var user = Environment.GetEnvironmentVariable("DB_USER")
- ?? throw new InvalidOperationException("DB_USER environment variable is not set");
+ ?? throw new InvalidOperationException("DB_USER environment variable is not set");
var password = Environment.GetEnvironmentVariable("DB_PASSWORD")
- ?? throw new InvalidOperationException("DB_PASSWORD environment variable is not set");
+ ?? throw new InvalidOperationException("DB_PASSWORD environment variable is not set");
var trustServerCertificate = Environment.GetEnvironmentVariable("DB_TRUST_SERVER_CERTIFICATE")
- ?? "True";
+ ?? "True";
var builder = new SqlConnectionStringBuilder
{
@@ -33,6 +33,7 @@ string BuildConnectionString()
return builder.ConnectionString;
}
+
try
{
var connectionString = BuildConnectionString();
@@ -72,7 +73,6 @@ try
using (connection)
{
-
ISeeder[] seeders =
[
new LocationSeeder(),
@@ -96,4 +96,4 @@ catch (Exception ex)
Console.Error.WriteLine("Seed failed:");
Console.Error.WriteLine(ex);
return 1;
-}
+}
\ No newline at end of file
diff --git a/src/Core/Database/Database.Seed/UserSeeder.cs b/src/Core/Database/Database.Seed/UserSeeder.cs
index 3dfa52c..b7ae4ba 100644
--- a/src/Core/Database/Database.Seed/UserSeeder.cs
+++ b/src/Core/Database/Database.Seed/UserSeeder.cs
@@ -1,272 +1,267 @@
using System.Data;
using System.Security.Cryptography;
using System.Text;
-using Domain.Core.Entities;
using idunno.Password;
using Konscious.Security.Cryptography;
using Microsoft.Data.SqlClient;
-namespace DBSeed
+namespace Database.Seed;
+
+internal class UserSeeder : ISeeder
{
- internal class UserSeeder : ISeeder
+ private static readonly IReadOnlyList<(
+ string FirstName,
+ string LastName
+ )> SeedNames =
+ [
+ ("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"),
+ ];
+
+ public async Task SeedAsync(SqlConnection connection)
{
- private static readonly IReadOnlyList<(
- string FirstName,
- string LastName
- )> SeedNames =
- [
- ("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"),
- ];
+ var generator = new PasswordGenerator();
+ var rng = new Random();
+ int createdUsers = 0;
+ int createdCredentials = 0;
+ int createdVerifications = 0;
- public async Task SeedAsync(SqlConnection connection)
{
- var generator = new PasswordGenerator();
- var rng = new Random();
- int createdUsers = 0;
- int createdCredentials = 0;
- int createdVerifications = 0;
+ const string firstName = "Test";
+ const string lastName = "User";
+ const string email = "test.user@thebiergarten.app";
+ var dob = new DateTime(1985, 03, 01);
+ var hash = GeneratePasswordHash("password");
- {
- const string firstName = "Test";
- const string lastName = "User";
- const string email = "test.user@thebiergarten.app";
- var dob = new DateTime(1985, 03, 01);
- var hash = GeneratePasswordHash("password");
-
- await RegisterUserAsync(
- connection,
- $"{firstName}.{lastName}",
- firstName,
- lastName,
- dob,
- email,
- hash
- );
- }
- foreach (var (firstName, lastName) in SeedNames)
- {
- // prepare user fields
- var username = $"{firstName[0]}.{lastName}";
- var email = $"{firstName}.{lastName}@thebiergarten.app";
- var dob = GenerateDateOfBirth(rng);
-
- // generate a password and hash it
- string pwd = generator.Generate(
- length: 64,
- numberOfDigits: 10,
- numberOfSymbols: 10
- );
- string hash = GeneratePasswordHash(pwd);
-
-
- // register the user (creates account + credential)
- var id = await RegisterUserAsync(
- connection,
- username,
- firstName,
- lastName,
- dob,
- email,
- hash
- );
- createdUsers++;
- createdCredentials++;
-
-
-
-
- // add user verification
- if (await HasUserVerificationAsync(connection, id)) continue;
-
- await AddUserVerificationAsync(connection, id);
- createdVerifications++;
- }
-
- Console.WriteLine($"Created {createdUsers} user accounts.");
- Console.WriteLine($"Added {createdCredentials} user credentials.");
- Console.WriteLine($"Added {createdVerifications} user verifications.");
- }
-
- private static async Task RegisterUserAsync(
- SqlConnection connection,
- string username,
- string firstName,
- string lastName,
- DateTime dateOfBirth,
- string email,
- string hash
- )
- {
- await using var command = new SqlCommand("dbo.USP_RegisterUser", connection);
- command.CommandType = CommandType.StoredProcedure;
-
-
- command.Parameters.Add("@Username", SqlDbType.VarChar, 64).Value = username;
- command.Parameters.Add("@FirstName", SqlDbType.NVarChar, 128).Value = firstName;
- command.Parameters.Add("@LastName", SqlDbType.NVarChar, 128).Value = lastName;
- command.Parameters.Add("@DateOfBirth", SqlDbType.DateTime).Value = dateOfBirth;
- command.Parameters.Add("@Email", SqlDbType.VarChar, 128).Value = email;
- command.Parameters.Add("@Hash", SqlDbType.NVarChar, -1).Value = hash;
-
- var result = await command.ExecuteScalarAsync();
-
-
- return (Guid)result!;
-
- }
-
- private static string GeneratePasswordHash(string pwd)
- {
- byte[] salt = RandomNumberGenerator.GetBytes(16);
-
- var argon2 = new Argon2id(Encoding.UTF8.GetBytes(pwd))
- {
- Salt = salt,
- DegreeOfParallelism = Math.Max(Environment.ProcessorCount, 1),
- MemorySize = 65536,
- Iterations = 4,
- };
-
- byte[] hash = argon2.GetBytes(32);
- return $"{Convert.ToBase64String(salt)}:{Convert.ToBase64String(hash)}";
- }
-
- private static async Task HasUserVerificationAsync(
- SqlConnection connection,
- Guid userAccountId
- )
- {
- const string sql = """
- SELECT 1
- FROM dbo.UserVerification
- WHERE UserAccountId = @UserAccountId;
- """;
- await using var command = new SqlCommand(sql, connection);
- command.Parameters.AddWithValue("@UserAccountId", userAccountId);
- var result = await command.ExecuteScalarAsync();
- return result is not null;
- }
-
- private static async Task AddUserVerificationAsync(
- SqlConnection connection,
- Guid userAccountId
- )
- {
- await using var command = new SqlCommand(
- "dbo.USP_CreateUserVerification",
- connection
+ await RegisterUserAsync(
+ connection,
+ $"{firstName}.{lastName}",
+ firstName,
+ lastName,
+ dob,
+ email,
+ hash
);
- command.CommandType = CommandType.StoredProcedure;
- command.Parameters.AddWithValue("@UserAccountID_", userAccountId);
-
- await command.ExecuteNonQueryAsync();
}
-
- private static DateTime GenerateDateOfBirth(Random random)
+ foreach (var (firstName, lastName) in SeedNames)
{
- int age = 19 + random.Next(0, 30);
- DateTime baseDate = DateTime.UtcNow.Date.AddYears(-age);
- int offsetDays = random.Next(0, 365);
- return baseDate.AddDays(-offsetDays);
+ // prepare user fields
+ var username = $"{firstName[0]}.{lastName}";
+ var email = $"{firstName}.{lastName}@thebiergarten.app";
+ var dob = GenerateDateOfBirth(rng);
+
+ // generate a password and hash it
+ string pwd = generator.Generate(
+ length: 64,
+ numberOfDigits: 10,
+ numberOfSymbols: 10
+ );
+ string hash = GeneratePasswordHash(pwd);
+
+
+ // register the user (creates account + credential)
+ var id = await RegisterUserAsync(
+ connection,
+ username,
+ firstName,
+ lastName,
+ dob,
+ email,
+ hash
+ );
+ createdUsers++;
+ createdCredentials++;
+
+
+ // add user verification
+ if (await HasUserVerificationAsync(connection, id)) continue;
+
+ await AddUserVerificationAsync(connection, id);
+ createdVerifications++;
}
+
+ Console.WriteLine($"Created {createdUsers} user accounts.");
+ Console.WriteLine($"Added {createdCredentials} user credentials.");
+ Console.WriteLine($"Added {createdVerifications} user verifications.");
}
-}
+
+ private static async Task RegisterUserAsync(
+ SqlConnection connection,
+ string username,
+ string firstName,
+ string lastName,
+ DateTime dateOfBirth,
+ string email,
+ string hash
+ )
+ {
+ await using var command = new SqlCommand("dbo.USP_RegisterUser", connection);
+ command.CommandType = CommandType.StoredProcedure;
+
+
+ command.Parameters.Add("@Username", SqlDbType.VarChar, 64).Value = username;
+ command.Parameters.Add("@FirstName", SqlDbType.NVarChar, 128).Value = firstName;
+ command.Parameters.Add("@LastName", SqlDbType.NVarChar, 128).Value = lastName;
+ command.Parameters.Add("@DateOfBirth", SqlDbType.DateTime).Value = dateOfBirth;
+ command.Parameters.Add("@Email", SqlDbType.VarChar, 128).Value = email;
+ command.Parameters.Add("@Hash", SqlDbType.NVarChar, -1).Value = hash;
+
+ var result = await command.ExecuteScalarAsync();
+
+
+ return (Guid)result!;
+ }
+
+ private static string GeneratePasswordHash(string pwd)
+ {
+ byte[] salt = RandomNumberGenerator.GetBytes(16);
+
+ var argon2 = new Argon2id(Encoding.UTF8.GetBytes(pwd))
+ {
+ Salt = salt,
+ DegreeOfParallelism = Math.Max(Environment.ProcessorCount, 1),
+ MemorySize = 65536,
+ Iterations = 4,
+ };
+
+ byte[] hash = argon2.GetBytes(32);
+ return $"{Convert.ToBase64String(salt)}:{Convert.ToBase64String(hash)}";
+ }
+
+ private static async Task HasUserVerificationAsync(
+ SqlConnection connection,
+ Guid userAccountId
+ )
+ {
+ const string sql = """
+ SELECT 1
+ FROM dbo.UserVerification
+ WHERE UserAccountId = @UserAccountId;
+ """;
+ await using var command = new SqlCommand(sql, connection);
+ command.Parameters.AddWithValue("@UserAccountId", userAccountId);
+ var result = await command.ExecuteScalarAsync();
+ return result is not null;
+ }
+
+ private static async Task AddUserVerificationAsync(
+ SqlConnection connection,
+ Guid userAccountId
+ )
+ {
+ await using var command = new SqlCommand(
+ "dbo.USP_CreateUserVerification",
+ connection
+ );
+ command.CommandType = CommandType.StoredProcedure;
+ command.Parameters.AddWithValue("@UserAccountID_", userAccountId);
+
+ await command.ExecuteNonQueryAsync();
+ }
+
+ private static DateTime GenerateDateOfBirth(Random random)
+ {
+ int age = 19 + random.Next(0, 30);
+ DateTime baseDate = DateTime.UtcNow.Date.AddYears(-age);
+ int offsetDays = random.Next(0, 365);
+ return baseDate.AddDays(-offsetDays);
+ }
+}
\ No newline at end of file
diff --git a/src/Core/Domain/Entities/UserAccount.cs b/src/Core/Domain/Entities/UserAccount.cs
index 4f10fdd..bda19c7 100644
--- a/src/Core/Domain/Entities/UserAccount.cs
+++ b/src/Core/Domain/Entities/UserAccount.cs
@@ -1,4 +1,4 @@
-namespace Domain.Core.Entities;
+namespace Domain.Entities;
public class UserAccount
{
diff --git a/src/Core/Domain/Entities/UserCredential.cs b/src/Core/Domain/Entities/UserCredential.cs
index 1dd87f8..65b46a1 100644
--- a/src/Core/Domain/Entities/UserCredential.cs
+++ b/src/Core/Domain/Entities/UserCredential.cs
@@ -1,4 +1,4 @@
-namespace Domain.Core.Entities;
+namespace Domain.Entities;
public class UserCredential
{
diff --git a/src/Core/Domain/Entities/UserVerification.cs b/src/Core/Domain/Entities/UserVerification.cs
index 777203c..3e66754 100644
--- a/src/Core/Domain/Entities/UserVerification.cs
+++ b/src/Core/Domain/Entities/UserVerification.cs
@@ -1,4 +1,4 @@
-namespace Domain.Core.Entities;
+namespace Domain.Entities;
public class UserVerification
{
diff --git a/src/Core/Infrastructure/Infrastructure.Repository.Tests/Repository.Tests.csproj b/src/Core/Infrastructure/Infrastructure.Repository.Tests/Infrastructure.Repository.Tests.csproj
similarity index 100%
rename from src/Core/Infrastructure/Infrastructure.Repository.Tests/Repository.Tests.csproj
rename to src/Core/Infrastructure/Infrastructure.Repository.Tests/Infrastructure.Repository.Tests.csproj
diff --git a/src/Core/Infrastructure/Infrastructure.Repository/Auth/AuthRepository.cs b/src/Core/Infrastructure/Infrastructure.Repository/Auth/AuthRepository.cs
index 65a5501..4672852 100644
--- a/src/Core/Infrastructure/Infrastructure.Repository/Auth/AuthRepository.cs
+++ b/src/Core/Infrastructure/Infrastructure.Repository/Auth/AuthRepository.cs
@@ -1,18 +1,15 @@
using System.Data;
using System.Data.Common;
-using Domain.Core.Entities;
+using Domain.Entities;
using Infrastructure.Repository.Sql;
namespace Infrastructure.Repository.Auth;
-public class AuthRepository
- : Repository,
+public class AuthRepository(ISqlConnectionFactory connectionFactory)
+ : Repository(connectionFactory),
IAuthRepository
{
- public AuthRepository(ISqlConnectionFactory connectionFactory)
- : base(connectionFactory) { }
-
- public async Task RegisterUserAsync(
+ public async Task RegisterUserAsync(
string username,
string firstName,
string lastName,
@@ -37,7 +34,7 @@ public class AuthRepository
var result = await command.ExecuteScalarAsync();
var userAccountId = result != null ? (Guid)result : Guid.Empty;
- return new Domain.Core.Entities.UserAccount
+ return new Domain.Entities.UserAccount
{
UserAccountId = userAccountId,
Username = username,
@@ -49,7 +46,7 @@ public class AuthRepository
};
}
- public async Task GetUserByEmailAsync(
+ public async Task GetUserByEmailAsync(
string email
)
{
@@ -64,7 +61,7 @@ public class AuthRepository
return await reader.ReadAsync() ? MapToEntity(reader) : null;
}
- public async Task GetUserByUsernameAsync(
+ public async Task GetUserByUsernameAsync(
string username
)
{
@@ -115,11 +112,11 @@ public class AuthRepository
///
/// Maps a data reader row to a UserAccount entity.
///
- protected override Domain.Core.Entities.UserAccount MapToEntity(
+ protected override Domain.Entities.UserAccount MapToEntity(
DbDataReader reader
)
{
- return new Domain.Core.Entities.UserAccount
+ return new Domain.Entities.UserAccount
{
UserAccountId = reader.GetGuid(
reader.GetOrdinal("UserAccountId")
diff --git a/src/Core/Infrastructure/Infrastructure.Repository/Auth/IAuthRepository.cs b/src/Core/Infrastructure/Infrastructure.Repository/Auth/IAuthRepository.cs
index 619276d..4a57360 100644
--- a/src/Core/Infrastructure/Infrastructure.Repository/Auth/IAuthRepository.cs
+++ b/src/Core/Infrastructure/Infrastructure.Repository/Auth/IAuthRepository.cs
@@ -1,4 +1,4 @@
-using Domain.Core.Entities;
+using Domain.Entities;
namespace Infrastructure.Repository.Auth;
@@ -18,7 +18,7 @@ public interface IAuthRepository
/// User's date of birth
/// Hashed password
/// The newly created UserAccount with generated ID
- Task RegisterUserAsync(
+ Task RegisterUserAsync(
string username,
string firstName,
string lastName,
@@ -33,7 +33,7 @@ public interface IAuthRepository
///
/// Email address to search for
/// UserAccount if found, null otherwise
- Task GetUserByEmailAsync(
+ Task GetUserByEmailAsync(
string email
);
@@ -43,7 +43,7 @@ public interface IAuthRepository
///
/// Username to search for
/// UserAccount if found, null otherwise
- Task GetUserByUsernameAsync(
+ Task GetUserByUsernameAsync(
string username
);
diff --git a/src/Core/Infrastructure/Infrastructure.Repository/UserAccount/IUserAccountRepository.cs b/src/Core/Infrastructure/Infrastructure.Repository/UserAccount/IUserAccountRepository.cs
index e1929ca..774f825 100644
--- a/src/Core/Infrastructure/Infrastructure.Repository/UserAccount/IUserAccountRepository.cs
+++ b/src/Core/Infrastructure/Infrastructure.Repository/UserAccount/IUserAccountRepository.cs
@@ -2,15 +2,15 @@ namespace Infrastructure.Repository.UserAccount;
public interface IUserAccountRepository
{
- Task GetByIdAsync(Guid id);
- Task> GetAllAsync(
+ Task GetByIdAsync(Guid id);
+ Task> GetAllAsync(
int? limit,
int? offset
);
- Task UpdateAsync(Domain.Core.Entities.UserAccount userAccount);
+ Task UpdateAsync(Domain.Entities.UserAccount userAccount);
Task DeleteAsync(Guid id);
- Task GetByUsernameAsync(
+ Task GetByUsernameAsync(
string username
);
- Task GetByEmailAsync(string email);
+ Task GetByEmailAsync(string email);
}
\ No newline at end of file
diff --git a/src/Core/Infrastructure/Infrastructure.Repository/UserAccount/UserAccountRepository.cs b/src/Core/Infrastructure/Infrastructure.Repository/UserAccount/UserAccountRepository.cs
index 6d9252b..d07fa3c 100644
--- a/src/Core/Infrastructure/Infrastructure.Repository/UserAccount/UserAccountRepository.cs
+++ b/src/Core/Infrastructure/Infrastructure.Repository/UserAccount/UserAccountRepository.cs
@@ -5,10 +5,10 @@ using Infrastructure.Repository.Sql;
namespace Infrastructure.Repository.UserAccount;
public class UserAccountRepository(ISqlConnectionFactory connectionFactory)
- : Repository(connectionFactory),
+ : Repository(connectionFactory),
IUserAccountRepository
{
- public async Task GetByIdAsync(
+ public async Task GetByIdAsync(
Guid id
)
{
@@ -24,7 +24,7 @@ public class UserAccountRepository(ISqlConnectionFactory connectionFactory)
}
public async Task<
- IEnumerable
+ IEnumerable
> GetAllAsync(int? limit, int? offset)
{
await using var connection = await CreateConnection();
@@ -39,7 +39,7 @@ public class UserAccountRepository(ISqlConnectionFactory connectionFactory)
AddParameter(command, "@Offset", offset.Value);
await using var reader = await command.ExecuteReaderAsync();
- var users = new List();
+ var users = new List();
while (await reader.ReadAsync())
{
@@ -50,7 +50,7 @@ public class UserAccountRepository(ISqlConnectionFactory connectionFactory)
}
public async Task UpdateAsync(
- Domain.Core.Entities.UserAccount userAccount
+ Domain.Entities.UserAccount userAccount
)
{
await using var connection = await CreateConnection();
@@ -79,7 +79,7 @@ public class UserAccountRepository(ISqlConnectionFactory connectionFactory)
await command.ExecuteNonQueryAsync();
}
- public async Task GetByUsernameAsync(
+ public async Task GetByUsernameAsync(
string username
)
{
@@ -94,7 +94,7 @@ public class UserAccountRepository(ISqlConnectionFactory connectionFactory)
return await reader.ReadAsync() ? MapToEntity(reader) : null;
}
- public async Task GetByEmailAsync(
+ public async Task GetByEmailAsync(
string email
)
{
@@ -109,11 +109,11 @@ public class UserAccountRepository(ISqlConnectionFactory connectionFactory)
return await reader.ReadAsync() ? MapToEntity(reader) : null;
}
- protected override Domain.Core.Entities.UserAccount MapToEntity(
+ protected override Domain.Entities.UserAccount MapToEntity(
DbDataReader reader
)
{
- return new Domain.Core.Entities.UserAccount
+ return new Domain.Entities.UserAccount
{
UserAccountId = reader.GetGuid(
reader.GetOrdinal("UserAccountId")
diff --git a/src/Core/Service/Service.Core/Auth/AuthService.cs b/src/Core/Service/Service.Core/Auth/AuthService.cs
index 738a0ae..8756dc3 100644
--- a/src/Core/Service/Service.Core/Auth/AuthService.cs
+++ b/src/Core/Service/Service.Core/Auth/AuthService.cs
@@ -1,4 +1,4 @@
-using Domain.Core.Entities;
+using Domain.Entities;
using Infrastructure.PasswordHashing;
using Infrastructure.Repository.Auth;
diff --git a/src/Core/Service/Service.Core/Auth/IAuthService.cs b/src/Core/Service/Service.Core/Auth/IAuthService.cs
index 3e6e17c..8e99efb 100644
--- a/src/Core/Service/Service.Core/Auth/IAuthService.cs
+++ b/src/Core/Service/Service.Core/Auth/IAuthService.cs
@@ -1,4 +1,4 @@
-using Domain.Core.Entities;
+using Domain.Entities;
namespace Service.Core.Auth;
diff --git a/src/Core/Service/Service.Core/User/IUserService.cs b/src/Core/Service/Service.Core/User/IUserService.cs
index 3bed122..a515cab 100644
--- a/src/Core/Service/Service.Core/User/IUserService.cs
+++ b/src/Core/Service/Service.Core/User/IUserService.cs
@@ -1,4 +1,4 @@
-using Domain.Core.Entities;
+using Domain.Entities;
namespace Service.Core.User;
diff --git a/src/Core/Service/Service.Core/User/UserService.cs b/src/Core/Service/Service.Core/User/UserService.cs
index 977c94c..1959553 100644
--- a/src/Core/Service/Service.Core/User/UserService.cs
+++ b/src/Core/Service/Service.Core/User/UserService.cs
@@ -1,4 +1,4 @@
-using Domain.Core.Entities;
+using Domain.Entities;
using Infrastructure.Repository.UserAccount;
namespace Service.Core.User;