public IEnumerable <T> ApplyFilter(IEnumerable <T> items, Specification.ISpecification <T> specification)
 {
     foreach (var item in items)
     {
         if (specification.IsSatisfied(item))
         {
             yield return(item);
         }
     }
 }