public static IEnumerable <TSource> Execute <TSource, TCondition>(this IEnumerable <TSource> source, TCondition condition, IExecutor <TSource, TCondition> executor)
        {
            //if (!executor.ExeutePrecondition(condition))
            //{
            //    return source;
            //}
            //return source.Where((x) => executor.ExecutePostcondition(x, condition));

            return(!executor.ExeutePrecondition(condition) ? source : source.Where((x) => executor.ExecutePostcondition(x, condition)));
        }