2025-02-06 12:32:28 +05:00
|
|
|
|
using Ardalis.Specification;
|
|
|
|
|
|
2025-02-10 09:27:13 +05:00
|
|
|
|
namespace DD.Persistence.Database.Specifications.Operation;
|
2025-02-10 17:25:45 +05:00
|
|
|
|
public class AndSpec<TEntity> : Specification<TEntity>
|
2025-02-06 12:32:28 +05:00
|
|
|
|
{
|
2025-02-10 17:25:45 +05:00
|
|
|
|
public AndSpec(ISpecification<TEntity> first, ISpecification<TEntity> second)
|
2025-02-06 12:32:28 +05:00
|
|
|
|
{
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|