Skip to content

Commit 75cd167

Browse files
Update to latest RazorSlices & Nanorm (#1852)
* Update RazorSlices & Nanorm to latest versions * Remove workaround for resolved issue * Update to RazorSlices 0.6.1
1 parent 55bba60 commit 75cd167

File tree

6 files changed

+54
-32
lines changed

6 files changed

+54
-32
lines changed

src/BenchmarksApps/TechEmpower/Minimal/Minimal.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<ItemGroup>
1212
<PackageReference Include="Npgsql" Version="8.0.0-preview.4" />
1313
<PackageReference Include="Dapper" Version="2.0.123" />
14-
<PackageReference Include="RazorSlices" Version="0.5.0" />
14+
<PackageReference Include="RazorSlices" Version="0.6.1" />
1515
</ItemGroup>
1616

1717
</Project>

src/BenchmarksApps/TechEmpower/PlatformBenchmarks/PlatformBenchmarks.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
<ItemGroup>
2121
<PackageReference Include="Dapper" Version="2.0.123" />
22-
<PackageReference Include="RazorSlices" Version="0.5.0" />
22+
<PackageReference Include="RazorSlices" Version="0.6.1" />
2323
</ItemGroup>
2424

2525
<ItemGroup Condition="$(TargetFramework) != 'net8.0'">

src/BenchmarksApps/TodosApi/DatabaseInitializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ private async Task Initialize(CancellationToken cancellationToken = default)
4141
_logger.LogInformation("Ensuring database exists and is up to date");
4242
}
4343

44-
var sql = $"""
44+
const string sql = $"""
4545
CREATE TABLE IF NOT EXISTS public.todos
4646
(
4747
{nameof(Todo.Id)} SERIAL PRIMARY KEY,

src/BenchmarksApps/TodosApi/TodoApi.cs

Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ public static RouteGroupBuilder MapTodoApi(this IEndpointRouteBuilder routes)
1313

1414
group.AddValidationFilter();
1515

16-
group.MapGet("/", (NpgsqlDataSource db, CancellationToken ct) =>
17-
db.QueryAsync<Todo>("SELECT * FROM Todos", ct))
16+
group.MapGet("/", (NpgsqlDataSource db, CancellationToken ct) => db.QueryAsync<Todo>("SELECT * FROM Todos", ct))
1817
.WithName("GetAllTodos");
1918

2019
group.MapGet("/complete", (NpgsqlDataSource db, CancellationToken ct) =>
@@ -26,19 +25,18 @@ public static RouteGroupBuilder MapTodoApi(this IEndpointRouteBuilder routes)
2625
.WithName("GetIncompleteTodos");
2726

2827
group.MapGet("/{id:int}", async Task<Results<Ok<Todo>, NotFound>> (int id, NpgsqlDataSource db, CancellationToken ct) =>
29-
await db.QuerySingleAsync<Todo>(
30-
"SELECT * FROM Todos WHERE Id = $1", ct, id.AsTypedDbParameter())
28+
await db.QuerySingleAsync<Todo>($"SELECT * FROM Todos WHERE Id = {id}", ct)
3129
is Todo todo
3230
? TypedResults.Ok(todo)
3331
: TypedResults.NotFound())
3432
.WithName("GetTodoById");
3533

3634
group.MapGet("/find", async Task<Results<Ok<Todo>, NotFound>> (string title, bool? isComplete, NpgsqlDataSource db, CancellationToken ct) =>
37-
await db.QuerySingleAsync<Todo>(
38-
"SELECT * FROM Todos WHERE LOWER(Title) = LOWER($1) AND ($2 is NULL OR IsComplete = $2)",
39-
ct,
40-
title.AsTypedDbParameter(),
41-
isComplete.AsTypedDbParameter())
35+
await db.QuerySingleAsync<Todo>($"""
36+
SELECT * FROM Todos
37+
WHERE LOWER(Title) = LOWER({title})
38+
AND ({isComplete} is NULL OR IsComplete = {isComplete})
39+
""", ct)
4240
is Todo todo
4341
? TypedResults.Ok(todo)
4442
: TypedResults.NotFound())
@@ -47,10 +45,7 @@ is Todo todo
4745
group.MapPost("/", async Task<Created<Todo>> (Todo todo, NpgsqlDataSource db, CancellationToken ct) =>
4846
{
4947
var createdTodo = await db.QuerySingleAsync<Todo>(
50-
"INSERT INTO Todos(Title, IsComplete) Values($1, $2) RETURNING *",
51-
ct,
52-
todo.Title.AsTypedDbParameter(),
53-
todo.IsComplete.AsTypedDbParameter());
48+
$"INSERT INTO Todos(Title, IsComplete) Values({todo.Title}, {todo.IsComplete}) RETURNING *", ct);
5449

5550
return TypedResults.Created($"/todos/{createdTodo?.Id}", createdTodo);
5651
})
@@ -60,34 +55,30 @@ is Todo todo
6055
{
6156
inputTodo.Id = id;
6257

63-
return await db.ExecuteAsync(
64-
"UPDATE Todos SET Title = $1, IsComplete = $2 WHERE Id = $3",
65-
ct,
66-
inputTodo.Title.AsTypedDbParameter(),
67-
inputTodo.IsComplete.AsTypedDbParameter(),
68-
id.AsTypedDbParameter()) == 1
58+
return await db.ExecuteAsync($"""
59+
UPDATE Todos
60+
SET Title = {inputTodo.Title}, IsComplete = {inputTodo.IsComplete}
61+
WHERE Id = {id}
62+
""", ct) == 1
6963
? TypedResults.NoContent()
7064
: TypedResults.NotFound();
7165
})
7266
.WithName("UpdateTodo");
7367

7468
group.MapPut("/{id}/mark-complete", async Task<Results<NoContent, NotFound>> (int id, NpgsqlDataSource db, CancellationToken ct) =>
75-
await db.ExecuteAsync(
76-
"UPDATE Todos SET IsComplete = true WHERE Id = $1", ct, id.AsTypedDbParameter()) == 1
69+
await db.ExecuteAsync($"UPDATE Todos SET IsComplete = true WHERE Id = {id}", ct) == 1
7770
? TypedResults.NoContent()
7871
: TypedResults.NotFound())
7972
.WithName("MarkComplete");
8073

8174
group.MapPut("/{id}/mark-incomplete", async Task<Results<NoContent, NotFound>> (int id, NpgsqlDataSource db, CancellationToken ct) =>
82-
await db.ExecuteAsync(
83-
"UPDATE Todos SET IsComplete = false WHERE Id = $1", ct, id.AsTypedDbParameter()) == 1
75+
await db.ExecuteAsync($"UPDATE Todos SET IsComplete = false WHERE Id = {id}", ct) == 1
8476
? TypedResults.NoContent()
8577
: TypedResults.NotFound())
8678
.WithName("MarkIncomplete");
8779

8880
group.MapDelete("/{id}", async Task<Results<NoContent, NotFound>> (int id, NpgsqlDataSource db, CancellationToken ct) =>
89-
await db.ExecuteAsync(
90-
"DELETE FROM Todos WHERE Id = $1", ct, id.AsTypedDbParameter()) == 1
81+
await db.ExecuteAsync($"DELETE FROM Todos WHERE Id = {id}", ct) == 1
9182
? TypedResults.NoContent()
9283
: TypedResults.NotFound())
9384
.WithName("DeleteTodo");

src/BenchmarksApps/TodosApi/TodosApi.csproj

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.0-preview.4.23260.4" />
2323
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.0-preview.4.23259.5" />
2424
<PackageReference Include="Npgsql" Version="8.0.0-preview.4" />
25-
<PackageReference Include="Nanorm.Npgsql" Version="0.0.4" />
25+
<PackageReference Include="Nanorm.Npgsql" Version="0.0.5" />
2626
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
2727
<PackageReference Include="Microsoft.Extensions.ApiDescription.Server" Version="8.0.0-preview.4.23260.4">
2828
<PrivateAssets>all</PrivateAssets>
@@ -32,8 +32,6 @@
3232

3333
<ItemGroup>
3434
<Content Update="appSettings.Development.json" CopyToPublishDirectory="false" />
35-
<!-- Workaround for https://github.com/dotnet/aspnetcore/issues/47941 -->
36-
<IlcArg Include="--nopreinitstatics" />
3735
</ItemGroup>
3836

3937
<Import Project="..\AspNetCore.OpenApi\build\AspNetCore.OpenApi.targets" />

src/BenchmarksApps/TodosApi/TodosApi.http

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@ Accept: application/json
99

1010
###
1111

12+
Get {{TodosApi_HostAddress}}/api/todos/incomplete
13+
Accept: application/json
14+
15+
###
16+
17+
Get {{TodosApi_HostAddress}}/api/todos/complete
18+
Accept: application/json
19+
20+
###
21+
1222
Post {{TodosApi_HostAddress}}/api/todos/
1323
Content-Type: application/json
1424
Accept: application/json
@@ -17,7 +27,30 @@ Accept: application/json
1727

1828
###
1929

20-
Get {{TodosApi_HostAddress}}/api/todos/1
30+
Get {{TodosApi_HostAddress}}/api/todos/619
31+
Accept: application/json
32+
33+
###
34+
35+
Put {{TodosApi_HostAddress}}/api/todos/619
36+
Content-Type: application/json
37+
Accept: application/json
38+
39+
{ "title" : "Update the stage 2 app - changed" }
40+
41+
###
42+
43+
Put {{TodosApi_HostAddress}}/api/todos/619/mark-complete
44+
Accept: application/json
45+
46+
###
47+
48+
Put {{TodosApi_HostAddress}}/api/todos/619/mark-incomplete
49+
Accept: application/json
50+
51+
###
52+
53+
Delete {{TodosApi_HostAddress}}/api/todos/619
2154
Accept: application/json
2255

2356
###

0 commit comments

Comments
 (0)