using System.Runtime.Serialization; namespace ZeroLevel.Specification { [DataContract] public class OrSpecification : BaseSpecification { [DataMember] private ISpecification leftSpecification; [DataMember] private ISpecification rightSpecification; public OrSpecification(ISpecification left, ISpecification right) { this.leftSpecification = left; this.rightSpecification = right; } public override bool IsSatisfiedBy(T o) { return this.leftSpecification.IsSatisfiedBy(o) || this.rightSpecification.IsSatisfiedBy(o); } } }