Remove Obsolete attributes and update FirstAsync behavior

Removed Obsolete attributes from FirstAsync and Exceptions class. Changed FirstAsync return type to non-nullable Task<T> and updated its logic to throw the provided exception when the sequence is empty, instead of returning null.
This commit is contained in:
2026-01-30 14:41:54 +01:00
parent 1afc95f9c6
commit 6f16921a79

View File

@@ -74,22 +74,19 @@ public static class TaskExtensions
/// <param name="task"></param>
/// <param name="factory"></param>
/// <returns></returns>
[Obsolete("Implement Mediator behaviors in the Osolete .NET project.")]
public static Task<T?> FirstAsync<T, TException>(this Task<IEnumerable<T>> task, Func<TException> factory)
public static Task<T> FirstAsync<T, TException>(this Task<IEnumerable<T>> task, Func<TException> factory)
where TException : Exception
=> task.Then(t => t.FirstOrDefault()) ?? throw factory();
=> task.Then(t => t.FirstOrDefault() ?? throw factory());
}
/// <summary>
///
/// </summary>
[Obsolete("Implement Mediator behaviors in the Osolete .NET project.")]
public static class Exceptions
{
/// <summary>
///
/// </summary>
[Obsolete("Implement Mediator behaviors in the Osolete .NET project.")]
public static NotFoundException NotFound() => new();
/// <summary>