/// <summary> /// Specificaiton execution using this strategy /// </summary> /// <param name="specification"></param> /// <returns></returns> public override SpecificationResult Execute(BaseSpecification specification) { if (ExecuteNext) { var result = specification.Execute(); if (!result.IsValid) { ExecuteNext = false; } return(result); } return(null); }
/// <summary> /// Specificaiton execution using this strategy /// </summary> /// <typeparam name="T"></typeparam> /// <param name="specification"></param> /// <param name="input"></param> /// <returns></returns> public override SpecificationResult Execute <T>(BaseSpecification <T> specification, T input) { return(specification.Execute(input)); }
/// <summary> /// Specificaiton execution using this strategy /// </summary> /// <param name="specification"></param> /// <returns></returns> public override SpecificationResult Execute(BaseSpecification specification) { return(specification.Execute()); }