void UpdateFilterExpression() { ISupportFiltering <TEntity> viewModel = this.viewModel as ISupportFiltering <TEntity>; if (viewModel != null) { viewModel.FilterExpression = ActiveFilterItem == null ? null : GetWhereExpression(ActiveFilterItem.FilterCriteria); } }
void UpdateFilterExpression() { ISupportFiltering <TEntity> viewModel = this.viewModel as ISupportFiltering <TEntity>; if (viewModel != null && ActiveFilterItem != null) { viewModel.FilterExpression = CriteriaOperatorToExpressionConverter.GetGenericWhere <TEntity>(ActiveFilterItem.FilterCriteria); } }
public static IQueryable <TQuery> ApplyFilter <TQuery>(this ISupportFiltering filterProvider, IQueryable <TQuery> query) { if (filterProvider.Filter == null) { return(query); } var filters = filterProvider.Filter; var queryType = typeof(TQuery); var parameterExpression = Expression.Parameter(typeof(TQuery), "x"); foreach (var filter in filters) { var queryProp = queryType.GetProperty(filter.MemberName); if (queryProp == null) { continue; } if (queryProp.PropertyType == typeof(string)) { query = ApplyStringLikeFilter(query, parameterExpression, filter.Value, queryProp); } else if (queryProp.PropertyType.IsEnum || (queryProp.PropertyType.IsNullableType() && queryProp.PropertyType.GetTypeOfNullable().IsEnum)) { query = ApplyEnumFilter(query, parameterExpression, filter.Value, queryProp); } else { query = ApplyPropertyTypeFilter(query, parameterExpression, filter.Value, queryProp); } } return(query); }
public void ApplyFilter(ISupportFiltering dataSource) => dataSource.FilterAsync(DataFilter.GetFilterExpression());