Get and return stuff from the database

This commit is contained in:
moarten
2026-04-10 22:33:31 +02:00
parent 87d15b99ed
commit 7bce78aa0c
4 changed files with 47 additions and 7 deletions

View File

@@ -2,6 +2,6 @@
{ {
public record Supermarkt public record Supermarkt
{ {
public required string Name { get; init; } public required string Naam { get; init; }
} }
} }

View File

@@ -1,14 +1,25 @@
using Cortex.Mediator.Queries; using Cortex.Mediator.Queries;
using Lutra.Application.Interfaces;
using Lutra.Application.Models.Supermarkten;
using Microsoft.EntityFrameworkCore;
namespace Lutra.Application.Supermarkten namespace Lutra.Application.Supermarkten
{ {
public sealed partial class GetSupermarkten public sealed partial class GetSupermarkten
{ {
public sealed class Handler : IQueryHandler<Query, Response> public sealed class Handler(ILutraDbContext context) : IQueryHandler<Query, Response>
{ {
public async Task<Response> Handle(Query request, CancellationToken cancellationToken) public async Task<Response> 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 };
} }
} }
} }

View File

@@ -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 namespace Lutra.Application.Verspakketten
{ {
public sealed partial class GetVerspakketten public sealed partial class GetVerspakketten
{ {
public sealed class Handler : IQueryHandler<Query, Response> public sealed class Handler(ILutraDbContext context) : IQueryHandler<Query, Response>
{ {
public async Task<Response> Handle(Query request, CancellationToken cancellationToken) public async Task<Response> 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 };
} }
} }
} }

View File

@@ -1,4 +1,4 @@
using Cortex.Mediator.Queries; using Cortex.Mediator.Queries;
namespace Lutra.Application.Verspakketten namespace Lutra.Application.Verspakketten
{ {