diff --git a/web/backend/Features/Features.Breweries/Repository/BreweryRepository.cs b/web/backend/Features/Features.Breweries/Repository/BreweryRepository.cs
index 204d666f..1247f43a 100644
--- a/web/backend/Features/Features.Breweries/Repository/BreweryRepository.cs
+++ b/web/backend/Features/Features.Breweries/Repository/BreweryRepository.cs
@@ -23,27 +23,27 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
IBreweryRepository
{
private const string SelectColumns = """
- bp.BreweryPostID,
- bp.PostedByID,
- bp.BreweryName,
- bp.Description,
- bp.CreatedAt,
- bp.UpdatedAt,
- bp.RowVersion,
- bpl.BreweryPostLocationID,
- bpl.CityID,
- bpl.AddressLine1,
- bpl.AddressLine2,
- bpl.PostalCode,
- bpl.Coordinates,
- c.CityName,
- c.StateProvinceID,
- sp.StateProvinceName,
- sp.ISO3166_2,
- sp.CountryID,
- co.CountryName,
- co.ISO3166_1
- """;
+ bp.BreweryPostID,
+ bp.PostedByID,
+ bp.BreweryName,
+ bp.Description,
+ bp.CreatedAt,
+ bp.UpdatedAt,
+ bp.RowVersion,
+ bpl.BreweryPostLocationID,
+ bpl.CityID,
+ bpl.AddressLine1,
+ bpl.AddressLine2,
+ bpl.PostalCode,
+ bpl.Coordinates,
+ c.CityName,
+ c.StateProvinceID,
+ sp.StateProvinceName,
+ sp.ISO3166_2,
+ sp.CountryID,
+ co.CountryName,
+ co.ISO3166_1
+ """;
///
/// Joins from dbo.BreweryPost down to dbo.Country so a row carries everything needed
@@ -52,12 +52,12 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
/// behavior), since a brewery post may have no location.
///
private const string FromJoins = """
- dbo.BreweryPost bp
- LEFT JOIN dbo.BreweryPostLocation bpl ON bp.BreweryPostID = bpl.BreweryPostID
- LEFT JOIN dbo.City c ON bpl.CityID = c.CityID
- LEFT JOIN dbo.StateProvince sp ON c.StateProvinceID = sp.StateProvinceID
- LEFT JOIN dbo.Country co ON sp.CountryID = co.CountryID
- """;
+ dbo.BreweryPost bp
+ LEFT JOIN dbo.BreweryPostLocation bpl ON bp.BreweryPostID = bpl.BreweryPostID
+ LEFT JOIN dbo.City c ON bpl.CityID = c.CityID
+ LEFT JOIN dbo.StateProvince sp ON c.StateProvinceID = sp.StateProvinceID
+ LEFT JOIN dbo.Country co ON sp.CountryID = co.CountryID
+ """;
///
public async Task GetByIdAsync(Guid id)
@@ -65,10 +65,10 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
await using DbConnection connection = await CreateConnection();
await using DbCommand command = connection.CreateCommand();
command.CommandText = $"""
- SELECT {SelectColumns}
- FROM {FromJoins}
- WHERE bp.BreweryPostID = @BreweryPostId
- """;
+ SELECT {SelectColumns}
+ FROM {FromJoins}
+ WHERE bp.BreweryPostID = @BreweryPostId
+ """;
AddParameter(command, "@BreweryPostId", id);
await using DbDataReader reader = await command.ExecuteReaderAsync();
@@ -76,16 +76,17 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
}
///
- public async Task> GetAllAsync(int? limit, int? offset)
+ public async Task> GetAllAsync(int? limit,
+ int? offset)
{
await using DbConnection connection = await CreateConnection();
await using DbCommand command = connection.CreateCommand();
command.CommandText = $"""
- SELECT {SelectColumns}
- FROM {FromJoins}
- ORDER BY bp.CreatedAt DESC
- OFFSET @Offset ROWS FETCH NEXT @Limit ROWS ONLY
- """;
+ SELECT {SelectColumns}
+ FROM {FromJoins}
+ ORDER BY bp.CreatedAt DESC
+ OFFSET @Offset ROWS FETCH NEXT @Limit ROWS ONLY
+ """;
AddParameter(command, "@Offset", offset ?? 0);
AddParameter(command, "@Limit", limit ?? int.MaxValue);
@@ -102,19 +103,25 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
public async Task UpdateAsync(BreweryPost brewery)
{
await using DbConnection connection = await CreateConnection();
- await using DbTransaction transaction = await connection.BeginTransactionAsync();
+ await using DbTransaction transaction =
+ await connection.BeginTransactionAsync();
try
{
bool breweryExists =
await connection.ExecuteScalarAsync(
- new CommandDefinition(
- "SELECT 1 FROM dbo.BreweryPost WHERE BreweryPostID = @BreweryPostId",
- new { brewery.BreweryPostId },
- transaction
+ new CommandDefinition(
+ """
+ SELECT 1 FROM
+ dbo.BreweryPost
+ WHERE
+ BreweryPostID = @BreweryPostId
+ """,
+ new { brewery.BreweryPostId },
+ transaction
+ )
)
- )
- is not null;
+ is not null;
if (!breweryExists)
throw new NotFoundException("Brewery not found.");
@@ -123,13 +130,13 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
{
bool cityExists =
await connection.ExecuteScalarAsync(
- new CommandDefinition(
- "SELECT 1 FROM dbo.City WHERE CityID = @CityId",
- new { brewery.Location.CityId },
- transaction
+ new CommandDefinition(
+ "SELECT 1 FROM dbo.City WHERE CityID = @CityId",
+ new { brewery.Location.CityId },
+ transaction
+ )
)
- )
- is not null;
+ is not null;
if (!cityExists)
throw new NotFoundException("City not found.");
@@ -139,8 +146,12 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
new CommandDefinition(
"""
UPDATE dbo.BreweryPost
- SET BreweryName = @BreweryName, Description = @Description, UpdatedAt = GETDATE()
- WHERE BreweryPostID = @BreweryPostId AND RowVersion = @RowVersion
+ SET BreweryName = @BreweryName,
+ Description = @Description,
+ UpdatedAt = GETDATE()
+ WHERE
+ BreweryPostID = @BreweryPostId
+ AND RowVersion = @RowVersion
""",
new
{
@@ -163,7 +174,11 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
// No location supplied: clear any existing location for this brewery.
await connection.ExecuteAsync(
new CommandDefinition(
- "DELETE FROM dbo.BreweryPostLocation WHERE BreweryPostID = @BreweryPostId",
+ """
+ DELETE FROM
+ dbo.BreweryPostLocation
+ WHERE BreweryPostID = @BreweryPostId
+ """,
new { brewery.BreweryPostId },
transaction
)
@@ -173,21 +188,28 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
{
bool locationExists =
await connection.ExecuteScalarAsync(
- new CommandDefinition(
- "SELECT 1 FROM dbo.BreweryPostLocation WHERE BreweryPostID = @BreweryPostId",
- new { brewery.BreweryPostId },
- transaction
+ new CommandDefinition(
+ """
+ SELECT 1
+ FROM dbo.BreweryPostLocation
+ WHERE BreweryPostID = @BreweryPostId
+ """,
+ new { brewery.BreweryPostId },
+ transaction
+ )
)
- )
- is not null;
+ is not null;
if (locationExists)
await connection.ExecuteAsync(
new CommandDefinition(
"""
UPDATE dbo.BreweryPostLocation
- SET CityID = @CityId, AddressLine1 = @AddressLine1, AddressLine2 = @AddressLine2,
- PostalCode = @PostalCode, Coordinates = @Coordinates
+ SET CityID = @CityId,
+ AddressLine1 = @AddressLine1,
+ AddressLine2 = @AddressLine2,
+ PostalCode = @PostalCode,
+ Coordinates = @Coordinates
WHERE BreweryPostID = @BreweryPostId
""",
new
@@ -247,9 +269,9 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
}
return await GetByIdAsync(brewery.BreweryPostId)
- ?? throw new InvalidOperationException(
- $"Brewery '{brewery.BreweryPostId}' was not found after a successful update."
- );
+ ?? throw new InvalidOperationException(
+ $"Brewery '{brewery.BreweryPostId}' was not found after a successful update."
+ );
}
///
@@ -257,7 +279,12 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
{
await using DbConnection connection = await CreateConnection();
int rows = await connection.ExecuteAsync(
- "DELETE FROM dbo.BreweryPost WHERE BreweryPostID = @BreweryPostId",
+ """
+ DELETE FROM
+ dbo.BreweryPost
+ WHERE
+ BreweryPostID = @BreweryPostId
+ """,
new { BreweryPostId = id }
);
@@ -269,35 +296,49 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
public async Task CreateAsync(BreweryPost brewery)
{
if (brewery.Location is null)
- throw new ArgumentException("Location must be provided when creating a brewery.");
+ throw new ArgumentException(
+ "Location must be provided when creating a brewery.");
await using DbConnection connection = await CreateConnection();
- await using DbTransaction transaction = await connection.BeginTransactionAsync();
+ await using DbTransaction transaction =
+ await connection.BeginTransactionAsync();
try
{
bool userExists =
await connection.ExecuteScalarAsync(
- new CommandDefinition(
- "SELECT 1 FROM dbo.UserAccount WHERE UserAccountID = @PostedById",
- new { brewery.PostedById },
- transaction
+ new CommandDefinition(
+ """
+ SELECT 1
+ FROM
+ dbo.UserAccount
+ WHERE
+ UserAccountID = @PostedById
+ """,
+ new { brewery.PostedById },
+ transaction
+ )
)
- )
- is not null;
+ is not null;
if (!userExists)
throw new NotFoundException("User not found.");
bool cityExists =
await connection.ExecuteScalarAsync(
- new CommandDefinition(
- "SELECT 1 FROM dbo.City WHERE CityID = @CityId",
- new { brewery.Location.CityId },
- transaction
+ new CommandDefinition(
+ """
+ SELECT 1
+ FROM
+ dbo.City
+ WHERE
+ CityID = @CityId
+ """,
+ new { brewery.Location.CityId },
+ transaction
+ )
)
- )
- is not null;
+ is not null;
if (!cityExists)
throw new NotFoundException("City not found.");
@@ -306,15 +347,9 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
new CommandDefinition(
"""
INSERT INTO dbo.BreweryPost
- (BreweryPostID,
- BreweryName,
- Description,
- PostedByID)
+ (BreweryPostID, BreweryName, Description, PostedByID)
VALUES
- (@BreweryPostId,
- @BreweryName,
- @Description,
- @PostedById)
+ (@BreweryPostId, @BreweryName, @Description, @PostedById)
""",
new
{
@@ -331,8 +366,20 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
new CommandDefinition(
"""
INSERT INTO dbo.BreweryPostLocation
- (BreweryPostLocationID, BreweryPostID, CityID, AddressLine1, AddressLine2, PostalCode, Coordinates)
- VALUES (@BreweryPostLocationId, @BreweryPostId, @CityId, @AddressLine1, @AddressLine2, @PostalCode, @Coordinates)
+ (BreweryPostLocationID,
+ BreweryPostID,
+ CityID,
+ AddressLine1,
+ AddressLine2,
+ PostalCode,
+ Coordinates)
+ VALUES (@BreweryPostLocationId,
+ @BreweryPostId,
+ @CityId,
+ @AddressLine1,
+ @AddressLine2,
+ @PostalCode,
+ @Coordinates)
""",
new
{
@@ -378,7 +425,9 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
BreweryName = reader.GetString(ordBreweryName),
Description = reader.GetString(ordDescription),
CreatedAt = reader.GetDateTime(ordCreatedAt),
- UpdatedAt = reader.IsDBNull(ordUpdatedAt) ? null : reader.GetDateTime(ordUpdatedAt),
+ UpdatedAt = reader.IsDBNull(ordUpdatedAt)
+ ? null
+ : reader.GetDateTime(ordUpdatedAt),
RowVersion = reader.IsDBNull(ordRowVersion)
? null
: reader.GetFieldValue(ordRowVersion),
@@ -396,7 +445,8 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
BreweryPostId = brewery.BreweryPostId,
CityId = reader.GetGuid(reader.GetOrdinal("CityId")),
City = MapCity(reader),
- AddressLine1 = reader.GetString(reader.GetOrdinal("AddressLine1")),
+ AddressLine1 =
+ reader.GetString(reader.GetOrdinal("AddressLine1")),
AddressLine2 = reader.IsDBNull(ordAddressLine2)
? null
: reader.GetString(ordAddressLine2),
@@ -421,28 +471,34 @@ public class BreweryRepository(ISqlConnectionFactory connectionFactory)
{
CityId = reader.GetGuid(reader.GetOrdinal("CityId")),
CityName = reader.GetString(reader.GetOrdinal("CityName")),
- StateProvinceId = reader.GetGuid(reader.GetOrdinal("StateProvinceId")),
+ StateProvinceId =
+ reader.GetGuid(reader.GetOrdinal("StateProvinceId")),
StateProvince = new StateProvince
{
- StateProvinceId = reader.GetGuid(reader.GetOrdinal("StateProvinceId")),
- StateProvinceName = reader.GetString(reader.GetOrdinal("StateProvinceName")),
+ StateProvinceId =
+ reader.GetGuid(reader.GetOrdinal("StateProvinceId")),
+ StateProvinceName =
+ reader.GetString(reader.GetOrdinal("StateProvinceName")),
ISO3166_2 = reader.GetString(reader.GetOrdinal("ISO3166_2")),
CountryId = reader.GetGuid(reader.GetOrdinal("CountryId")),
Country = new Country
{
CountryId = reader.GetGuid(reader.GetOrdinal("CountryId")),
- CountryName = reader.GetString(reader.GetOrdinal("CountryName")),
- ISO3166_1 = reader.GetString(reader.GetOrdinal("ISO3166_1")),
+ CountryName =
+ reader.GetString(reader.GetOrdinal("CountryName")),
+ ISO3166_1 =
+ reader.GetString(reader.GetOrdinal("ISO3166_1")),
},
},
};
}
- private static void AddParameter(DbCommand command, string name, object? value)
+ private static void AddParameter(DbCommand command, string name,
+ object? value)
{
DbParameter p = command.CreateParameter();
p.ParameterName = name;
p.Value = value ?? DBNull.Value;
command.Parameters.Add(p);
}
-}
+}
\ No newline at end of file