using Ardalis.Specification; namespace DD.Persistence.Database.Specifications; public class AndSpecification : Specification { public AndSpecification(ISpecification first, ISpecification second) { if (first is null || second is null) return; ApplyCriteria(first); ApplyCriteria(second); } private void ApplyCriteria(ISpecification specification) { foreach (var criteria in specification.WhereExpressions) { Query.Where(criteria.Filter); } } }