Add AnyResultViewQuery to check for matching ResultView

Introduced AnyResultViewQuery and its handler to determine if any ResultView entity exists matching optional filters (Id, ActionId, ProfileId, BatchId). The handler builds the query dynamically and uses AnyAsync for efficient existence checks.
This commit is contained in:
2026-04-16 10:20:18 +02:00
parent 9bb5c97df6
commit 38f91aae84

View File

@@ -0,0 +1,35 @@
using DigitalData.Core.Abstraction.Application.Repository;
using MediatR;
using Microsoft.EntityFrameworkCore;
using ReC.Domain.Views;
namespace ReC.Application.Results.Queries;
public record AnyResultViewQuery(
long? Id = null,
long? ActionId = null,
long? ProfileId = null,
string? BatchId = null
) : IRequest<bool>;
public class AnyResultViewQueryHandler(IRepository<ResultView> repo) : IRequestHandler<AnyResultViewQuery, bool>
{
public Task<bool> Handle(AnyResultViewQuery request, CancellationToken cancel)
{
var q = repo.Query;
if(request.Id is long id)
q = q.Where(rv => rv.Id == id);
if(request.ActionId is long actionId)
q = q.Where(rv => rv.ActionId == actionId);
if(request.ProfileId is long profileId)
q = q.Where(rv => rv.ProfileId == profileId);
if(request.BatchId is string batchId)
q = q.Where(rv => rv.BatchId == batchId);
return q.AnyAsync(cancel);
}
}