Compare commits

...

2 Commits

Author SHA1 Message Date
ba5766f9d5
Update to .NET 10 preview
All checks were successful
Docker Image CI / build (push) Successful in 8m8s
2025-03-11 23:32:27 +00:00
25876813e5
Update dependencies 2025-03-11 22:21:20 +00:00
10 changed files with 46 additions and 49 deletions

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1.7-labs
FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build1
FROM mcr.microsoft.com/dotnet/sdk:10.0-preview-alpine AS build1
WORKDIR /src
COPY ./.config ./
@ -10,7 +10,7 @@ WORKDIR Groceries
COPY ./Groceries/libman.json ./
RUN dotnet libman restore
FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build2
FROM mcr.microsoft.com/dotnet/sdk:10.0-preview-alpine AS build2
WORKDIR /src
COPY ./Groceries.sln ./
@ -23,7 +23,7 @@ COPY . ./
COPY --from=build1 /src ./
RUN dotnet publish --no-restore --output /out
FROM mcr.microsoft.com/dotnet/aspnet:9.0-alpine-composite AS base
FROM mcr.microsoft.com/dotnet/aspnet:10.0-preview-alpine-composite AS base
WORKDIR /groceries
COPY --from=build2 /out .

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>nullable</WarningsAsErrors>
@ -9,10 +9,10 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DbUp-PostgreSQL" Version="5.0.40" />
<PackageReference Include="DbUp-PostgreSQL" Version="6.0.3" />
<PackageReference Include="EFCore.NamingConventions" Version="9.0.0" />
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.2" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0-preview.1" />
</ItemGroup>
<ItemGroup>

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<WarningsAsErrors>nullable</WarningsAsErrors>

View File

@ -32,10 +32,10 @@ public static class HttpRequestExtensions
return origin.IsBaseOf(uri);
}
public static Uri? GetRefererIfSameOrigin(this HttpRequest request)
public static Uri? GetReferrerIfSameOrigin(this HttpRequest request)
{
var referer = request.GetTypedHeaders().Referer;
return referer != null && request.IsSameOrigin(referer) ? referer : null;
var referrer = request.GetTypedHeaders().Referer;
return referrer != null && request.IsSameOrigin(referrer) ? referrer : null;
}
public static bool IsTurboFrameRequest(this HttpRequest request, string frameId)

View File

@ -65,19 +65,16 @@
}
items = itemsQuery
.GroupJoin(
.LeftJoin(
dbContext.ItemPurchases.Where(purchase => purchase.IsLastPurchase),
item => item.Id,
purchase => purchase.ItemId,
(item, purchases) => new { item, purchases })
.SelectMany(
group => group.purchases.DefaultIfEmpty(),
(group, lastPurchase) => new ItemModel
(item, lastPurchase) => new ItemModel
{
Id = group.item.Id,
Brand = group.item.Brand,
Name = group.item.Name,
HasBarcode = group.item.Barcodes.Count != 0,
Id = item.Id,
Brand = item.Brand,
Name = item.Name,
HasBarcode = item.Barcodes.Count > 0,
LastPurchasedAt = lastPurchase != null ? lastPurchase.CreatedAt : null,
})
.OrderBy(item => item.Brand)

View File

@ -1,4 +1,5 @@
using DbUp;
using DbUp.Engine.Output;
using Groceries.Data;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.EntityFrameworkCore;
@ -13,20 +14,6 @@ builder.Configuration
.AddIniFile(Path.Combine(dataDir, $"config_{env.EnvironmentName}.ini"), optional: true, reloadOnChange: true);
var dbConn = builder.Configuration["Database"]!;
EnsureDatabase.For.PostgresqlDatabase(dbConn);
var dbUpgradeResult = DeployChanges.To
.PostgresqlDatabase(dbConn)
.JournalToPostgresqlTable("public", "__dbup_migrations")
.WithScriptsEmbeddedInAssembly(typeof(AppDbContext).Assembly)
.WithTransactionPerScript()
.Build()
.PerformUpgrade();
if (!dbUpgradeResult.Successful)
{
return -1;
}
var dataProtection = builder.Services.AddDataProtection();
if (env.IsProduction())
@ -58,6 +45,22 @@ app.MapStaticAssets();
app.MapControllers()
.WithStaticAssets();
await app.RunAsync();
var dbUpgradeLogger = new MicrosoftUpgradeLog(app.Logger);
EnsureDatabase.For.PostgresqlDatabase(dbConn, dbUpgradeLogger);
return 0;
var dbUpgradeResult = DeployChanges.To
.PostgresqlDatabase(dbConn)
.JournalToPostgresqlTable("public", "__dbup_migrations")
.WithScriptsEmbeddedInAssembly(typeof(AppDbContext).Assembly)
.WithTransactionPerScript()
.LogTo(dbUpgradeLogger)
.Build()
.PerformUpgrade();
if (!dbUpgradeResult.Successful)
{
Environment.Exit(-1);
return;
}
app.Run();

View File

@ -24,9 +24,9 @@
protected override void OnInitialized()
{
var request = HttpContextAccessor.HttpContext!.Request;
if (request.GetRefererIfSameOrigin() is Uri referer && referer != request.GetUri())
if (request.GetReferrerIfSameOrigin() is Uri referrer && referrer != request.GetUri())
{
returnUrl = referer.PathAndQuery;
returnUrl = referrer.PathAndQuery;
}
}
}

View File

@ -19,9 +19,9 @@
protected override void OnInitialized()
{
var request = HttpContextAccessor.HttpContext!.Request;
if (request.GetRefererIfSameOrigin() is Uri referer && referer != request.GetUri())
if (request.GetReferrerIfSameOrigin() is Uri referrer && referrer != request.GetUri())
{
returnUrl = referer.PathAndQuery;
returnUrl = referrer.PathAndQuery;
}
}
}

View File

@ -97,17 +97,14 @@
items = await dbContext.Items
.OrderBy(item => item.Brand)
.ThenBy(item => item.Name)
.GroupJoin(
.LeftJoin(
dbContext.ItemPurchases.Where(purchase => purchase.IsLastPurchase),
item => item.Id,
lastPurchase => lastPurchase.ItemId,
(item, purchases) => new { item, purchases })
.SelectMany(
group => group.purchases.DefaultIfEmpty(),
(group, lastPurchase) => new ItemModel(
group.item.Id,
group.item.Brand,
group.item.Name,
(item, lastPurchase) => new ItemModel(
item.Id,
item.Brand,
item.Name,
lastPurchase != null ? lastPurchase.Price : null,
lastPurchase != null ? lastPurchase.Quantity : null))
.ToArrayAsync();

View File

@ -3,11 +3,11 @@
"defaultProvider": "unpkg",
"libraries": [
{
"library": "@fontsource-variable/inter@5.1.1",
"library": "@fontsource-variable/inter@5.2.5",
"destination": "wwwroot/lib/inter/"
},
{
"library": "@hotwired/turbo@8.0.12",
"library": "@hotwired/turbo@8.0.13",
"destination": "wwwroot/lib/hotwired/turbo/"
},
{