public static ICriteria CreateCriteriaFromArray(ISession session, ICriterion[] criteria, CriteriaCreator creator, params Order[] orders) { ICriteria crit = session.CreateCriteria(typeof(T)); foreach (ICriterion criterion in criteria) { //allow some fancy antics like returning possible return // or null to ignore the criteria if (criterion == null) { continue; } crit.Add(criterion); } crit = ApplyFetchingStrategies(crit); AddCaching(crit); if (orders != null) { foreach (Order order in orders) { crit.AddOrder(order); } } return(crit); }
public static ICriteria GetExecutableCriteria(ISession session, DetachedCriteria criteria, CriteriaCreator creator, params Order[] orders) { ICriteria executableCriteria; if (criteria != null) { executableCriteria = criteria.GetExecutableCriteria(session); } else { executableCriteria = creator(session); } executableCriteria = ApplyFetchingStrategies(executableCriteria); AddCaching(executableCriteria); if (orders != null && orders.Length > 0) { foreach (Order order in orders) { executableCriteria.AddOrder(order); } } return(executableCriteria); }