Files
ersatztv/ErsatzTV.Infrastructure/Extensions/QueryableExtensions.cs
T
Jason DoveandGitHub 1c07df5bc3 use cancellation tokens in many places (#2350)
* use cancellation tokens everywhere

* more cancellation tokens
2025-08-27 03:20:35 +00:00

15 lines
520 B
C#

using System.Linq.Expressions;
using Microsoft.EntityFrameworkCore;
namespace ErsatzTV.Infrastructure.Extensions;
public static class QueryableExtensions
{
public static async Task<Option<T>> SelectOneAsync<T, TKey>(
this IQueryable<T> enumerable,
Expression<Func<T, TKey>> keySelector,
Expression<Func<T, bool>> predicate,
CancellationToken cancellationToken) where T : class =>
await enumerable.OrderBy(keySelector).FirstOrDefaultAsync(predicate, cancellationToken);
}