private void AppendCriteria <T>(SqlCriteria aCriteria, AppendCriteria aCriteriaAppender, PropertyMap aMap, T aData, bool isBindNull) where T : class, new() { object value = extractor.GetValue(aMap.Member.Name, aData); if (!isBindNull && value == null) { return; } aCriteriaAppender(aCriteria, aMap, value); }
public SqlCriteria GetCriteria <T>(T aData, AppendCriteria aCriteriaAppender, bool isBindNull, bool isIdIncludedIfExists) where T : class, new() { var criteria = factory.CreateCriteria(); propertyBinder.BindProperty <T>( delegate(PropertyMap aMap) { AppendCriteria(criteria, aCriteriaAppender, aMap, aData, isBindNull); }, delegate(IdentityMap aMap) { if (isIdIncludedIfExists) { AppendCriteria(criteria, aCriteriaAppender, aMap, aData, isBindNull); } }, delegate(PropertyMap aMap, MemberInfo[] aParentsMembers) { var field = extractor.GetValue(aData, aParentsMembers); AppendCriteria(criteria, aCriteriaAppender, aMap, field, isBindNull); }); return(criteria); }