using ErsatzTV.Infrastructure.Data; using Microsoft.EntityFrameworkCore; namespace ErsatzTV.Application.Playouts; public class GetPlayoutIdByChannelNumberHandler(IDbContextFactory dbContextFactory) : IRequestHandler> { public async Task> Handle(GetPlayoutIdByChannelNumber request, CancellationToken cancellationToken) { await using TvContext dbContext = await dbContextFactory.CreateDbContextAsync(cancellationToken); return await dbContext.Playouts .Filter(p => p.Channel.Number == request.ChannelNumber) .Map(p => p.Id) .ToListAsync(cancellationToken) .Map(list => list.HeadOrNone()); } }