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 required string Name { get; init; }
public required string Naam { get; init; }
}
}

View File

@@ -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<Query, Response>
public sealed class Handler(ILutraDbContext context) : IQueryHandler<Query, Response>
{
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
{
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)
{
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
{