public TContext Require <TException>(Func <bool> condition, Func <TException> createException = null) where TException : Exception { var contractCondition = new CustomExceptionContractCondition <TException>(condition, createException); var elevatedPreconditions = this.contractBundle.AddPrecondition(contractCondition); return(Copy(contractBundle: elevatedPreconditions)); }
public TContext EnsureOnThrow <TException>(Func <bool> condition, Func <Exception, TException> createException = null) where TException : Exception { var contractCondition = new CustomExceptionContractCondition <TException>(condition, createException); var elevatedPostconditionsOnThrow = this.contractBundle.AddPostconditionOnThrow(contractCondition); return(Copy(contractBundle: elevatedPostconditionsOnThrow)); }
public IResultContractContext <TResult> EnsureOnReturn <TException>(Func <bool> condition, Func <TException> createException = null) where TException : Exception { var contractCondition = new CustomExceptionContractCondition <TException>(condition, createException); var elevatedPostconditionsOnReturn = this.contractBundle.AddPostconditionOnReturn(contractCondition); return(Copy(contractBundle: elevatedPostconditionsOnReturn)); }