From 7bce78aa0c53ed50ae1207f983d33519fe098a90 Mon Sep 17 00:00:00 2001 From: moarten Date: Fri, 10 Apr 2026 22:33:31 +0200 Subject: [PATCH] Get and return stuff from the database --- .../Models/Supermarkten/Supermarkt.cs | 2 +- .../Supermarkten/GetSupermarkten.Handler.cs | 15 ++++++-- .../Verspakketten/GetVerspakketten.Handler.cs | 35 +++++++++++++++++-- .../Verspakketten/GetVerspakketten.Query.cs | 2 +- 4 files changed, 47 insertions(+), 7 deletions(-) diff --git a/Lutra/Lutra.Application/Models/Supermarkten/Supermarkt.cs b/Lutra/Lutra.Application/Models/Supermarkten/Supermarkt.cs index cbdfc42..6f6ad50 100644 --- a/Lutra/Lutra.Application/Models/Supermarkten/Supermarkt.cs +++ b/Lutra/Lutra.Application/Models/Supermarkten/Supermarkt.cs @@ -2,6 +2,6 @@ { public record Supermarkt { - public required string Name { get; init; } + public required string Naam { get; init; } } } diff --git a/Lutra/Lutra.Application/Supermarkten/GetSupermarkten.Handler.cs b/Lutra/Lutra.Application/Supermarkten/GetSupermarkten.Handler.cs index e47648a..303c02e 100644 --- a/Lutra/Lutra.Application/Supermarkten/GetSupermarkten.Handler.cs +++ b/Lutra/Lutra.Application/Supermarkten/GetSupermarkten.Handler.cs @@ -1,14 +1,25 @@ using Cortex.Mediator.Queries; +using Lutra.Application.Interfaces; +using Lutra.Application.Models.Supermarkten; +using Microsoft.EntityFrameworkCore; namespace Lutra.Application.Supermarkten { public sealed partial class GetSupermarkten { - public sealed class Handler : IQueryHandler + public sealed class Handler(ILutraDbContext context) : IQueryHandler { public async Task Handle(Query request, CancellationToken cancellationToken) { - return new Response { Supermarkten = [] }; + var supermarkten = await context.Supermarkten + .AsNoTracking() + .OrderBy(s => s.Naam) + .Skip(request.Skip) + .Take(request.Take) + .Select(s => new Supermarkt { Naam = s.Naam }) + .ToListAsync(cancellationToken); + + return new Response { Supermarkten = supermarkten }; } } } diff --git a/Lutra/Lutra.Application/Verspakketten/GetVerspakketten.Handler.cs b/Lutra/Lutra.Application/Verspakketten/GetVerspakketten.Handler.cs index c062bba..2ae776a 100644 --- a/Lutra/Lutra.Application/Verspakketten/GetVerspakketten.Handler.cs +++ b/Lutra/Lutra.Application/Verspakketten/GetVerspakketten.Handler.cs @@ -1,14 +1,43 @@ -using Cortex.Mediator.Queries; +using Cortex.Mediator.Queries; +using Lutra.Application.Interfaces; +using Lutra.Application.Models.Supermarkten; +using Lutra.Application.Models.Verspakketten; +using Microsoft.EntityFrameworkCore; namespace Lutra.Application.Verspakketten { public sealed partial class GetVerspakketten { - public sealed class Handler : IQueryHandler + public sealed class Handler(ILutraDbContext context) : IQueryHandler { public async Task Handle(Query request, CancellationToken cancellationToken) { - return new Response { Verspakketten = [] }; + var verspakketten = await context.Verspaketten + .AsNoTracking() + .OrderBy(v => v.Naam) + .Skip(request.Skip) + .Take(request.Take) + .Select(v => new Verspakket + { + Naam = v.Naam, + PrijsInCenten = null, + Beoordelingen = v.Beoordelingen + .Select(b => new Beoordeling + { + CijferSmaak = b.CijferSmaak, + CijferBereiden = b.CijferBereiden, + Aanbevolen = b.Aanbevolen, + Tekst = b.Tekst + }) + .ToArray(), + Supermarkt = new Supermarkt + { + Naam = v.Supermarkt.Naam + } + }) + .ToListAsync(cancellationToken); + + return new Response { Verspakketten = verspakketten }; } } } diff --git a/Lutra/Lutra.Application/Verspakketten/GetVerspakketten.Query.cs b/Lutra/Lutra.Application/Verspakketten/GetVerspakketten.Query.cs index bc48aa2..72396a9 100644 --- a/Lutra/Lutra.Application/Verspakketten/GetVerspakketten.Query.cs +++ b/Lutra/Lutra.Application/Verspakketten/GetVerspakketten.Query.cs @@ -1,4 +1,4 @@ -using Cortex.Mediator.Queries; +using Cortex.Mediator.Queries; namespace Lutra.Application.Verspakketten {