Files
Examples/GerstITS.Examples.Logic/Shared/Extensions/IReadOnlyRepositoryExtensions.cs
2022-12-22 15:29:53 +01:00

30 lines
778 B
C#

using System;
using System.Linq;
using System.Linq.Expressions;
using GerstITS.Common;
using GerstITS.Data;
namespace GerstITS.Examples.Logic.Shared;
internal static class ISearchEngineExtensions
{
#region Methods
public static TEntity QueryBy<TEntity>(this IReadOnlyRepository repository, Expression<Func<TEntity, bool>> condition)
where TEntity : IEntity
{
return repository.Query<TEntity>()
.Where(condition)
.FirstOrDefault();
}
public static TModel ThrowsAnExceptionIfNotFound<TModel, TKey>(this TModel model, TKey id)
{
if (model.IsNull())
throw new EntityNotFoundException($"{typeof(TModel).Name} with id '{id}' not found.");
return model;
}
#endregion
}