private static abstractSearch CreateSearchCriteria(Type type, string property) { abstractSearch result = null; if (type.Equals(typeof(string))) { result = new textSearch(); } else if (type.Equals(typeof(int)) || type.Equals(typeof(int?))) { result = new intSearch(); } else if (type.Equals(typeof(decimal)) || type.Equals(typeof(decimal?))) { result = new decimalSearch(); } else if (type.Equals(typeof(DateTime)) || type.Equals(typeof(DateTime?))) { result = new dateSearch(); } if (result != null) { result.property = property; } return(result); }
public static ICollection <abstractSearch> AddCustomSearchCriteria <T>(this ICollection <abstractSearch> searchCriterias, Expression <Func <T, object> > property) { Type propertyType = null; string fullPropertyPath = GetPropertyPath(property, out propertyType); abstractSearch searchCriteria = CreateSearchCriteria(propertyType, fullPropertyPath); if (searchCriteria != null) { searchCriterias.Add(searchCriteria); } return(searchCriterias); }