using MediatR; using Microsoft.EntityFrameworkCore; using SequenceAuth.Example.Domain; using SequenceAuth.Example.Infrastructure; namespace SequenceAuth.Example.Features.Todos; public record GetTodosQuery(Guid UserId, TodoStatus? StatusFilter) : IRequest>; public class GetTodosQueryHandler(AppDbContext dbContext) : IRequestHandler> { public async Task> Handle(GetTodosQuery request, CancellationToken cancellationToken) { var query = dbContext.Todos.Where(t => t.UserId == request.UserId); query = request.StatusFilter switch { null => query, var status => query.Where(t => t.Status == status) }; return await query.ToListAsync(cancellationToken); } }