Further improvements on the open hours endpoints

This commit is contained in:
2026-02-24 21:52:16 +02:00
parent 082eb2575e
commit bc4c849590
11 changed files with 425 additions and 18 deletions

View File

@@ -19,7 +19,7 @@ public class LokService
await using var command = _connection.CreateCommand();
command.CommandText = @"
SELECT version, paragraph1, paragraph2, paragraph3, paragraph4, kitchenNotice
SELECT id, name, version, paragraph1, paragraph2, paragraph3, paragraph4, kitchenNotice
FROM LokOpenHours
ORDER BY datetime(version) DESC, id DESC
LIMIT 5";
@@ -32,6 +32,8 @@ public class LokService
{
openHoursList.Add(new LokOpenHours
{
Id = reader["id"] is long id ? id : Convert.ToInt64(reader["id"]),
Name = reader["name"]?.ToString() ?? string.Empty,
Version = ParseVersion(reader["version"]?.ToString()),
Paragraph1 = reader["paragraph1"]?.ToString() ?? string.Empty,
Paragraph2 = reader["paragraph2"]?.ToString() ?? string.Empty,
@@ -55,9 +57,11 @@ public class LokService
await using var command = _connection.CreateCommand();
command.CommandText = @"
INSERT INTO LokOpenHours (version, paragraph1, paragraph2, paragraph3, paragraph4, kitchenNotice)
VALUES (@version, @paragraph1, @paragraph2, @paragraph3, @paragraph4, @kitchenNotice);";
INSERT INTO LokOpenHours (name, version, paragraph1, paragraph2, paragraph3, paragraph4, kitchenNotice)
VALUES (@name, @version, @paragraph1, @paragraph2, @paragraph3, @paragraph4, @kitchenNotice);
SELECT last_insert_rowid();";
command.Parameters.AddWithValue("@name", openHours.Name ?? string.Empty);
command.Parameters.AddWithValue("@version", version.ToString("O"));
command.Parameters.AddWithValue("@paragraph1", openHours.Paragraph1 ?? string.Empty);
command.Parameters.AddWithValue("@paragraph2", openHours.Paragraph2 ?? string.Empty);
@@ -65,10 +69,12 @@ public class LokService
command.Parameters.AddWithValue("@paragraph4", openHours.Paragraph4 ?? string.Empty);
command.Parameters.AddWithValue("@kitchenNotice", openHours.KitchenNotice ?? string.Empty);
await command.ExecuteNonQueryAsync();
var insertedId = await command.ExecuteScalarAsync();
return new LokOpenHours
{
Id = Convert.ToInt64(insertedId),
Name = openHours.Name ?? string.Empty,
Version = version,
Paragraph1 = openHours.Paragraph1 ?? string.Empty,
Paragraph2 = openHours.Paragraph2 ?? string.Empty,
@@ -78,6 +84,24 @@ public class LokService
};
}
public async Task<bool> DeleteOpenHours(long id)
{
if (_connection.State != ConnectionState.Open)
{
await _connection.OpenAsync();
}
await using var command = _connection.CreateCommand();
command.CommandText = @"
DELETE FROM LokOpenHours
WHERE id = @id;";
command.Parameters.AddWithValue("@id", id);
var affectedRows = await command.ExecuteNonQueryAsync();
return affectedRows > 0;
}
private static DateTime ParseVersion(string? value)
{
if (!string.IsNullOrWhiteSpace(value) && DateTime.TryParse(value, out var parsed))