persistence/DD.Persistence.Database/Specifications/AndSpecification.cs

23 lines
591 B
C#
Raw Normal View History

2025-02-06 12:32:28 +05:00
using Ardalis.Specification;
namespace DD.Persistence.Database.Specifications;
public class AndSpecification<TEntity> : Specification<TEntity>
{
public AndSpecification(ISpecification<TEntity> first, ISpecification<TEntity> second)
{
if (first is null || second is null)
return;
ApplyCriteria(first);
ApplyCriteria(second);
}
private void ApplyCriteria(ISpecification<TEntity> specification)
{
foreach (var criteria in specification.WhereExpressions)
{
Query.Where(criteria.Filter);
}
}
}