private bool DoesPredicateContainNavOrDerivedProperties(Expression expression, ResourceType type) { bool flag; FilterPropertyFinder filterPropertyFinder = new FilterPropertyFinder(expression); if (filterPropertyFinder.IsCompleteExpressionParsed) { List<KeyValuePair<ResourceProperty, object>> filterProperties = filterPropertyFinder.FilterProperties; bool flag1 = filterProperties.Any<KeyValuePair<ResourceProperty, object>>((KeyValuePair<ResourceProperty, object> it) => { if ((it.Key.Kind & ResourcePropertyKind.ResourceSetReference) == ResourcePropertyKind.ResourceSetReference) { return true; } else { return (it.Key.Kind & ResourcePropertyKind.ResourceReference) == ResourcePropertyKind.ResourceReference; } } ); if (!flag1) { List<KeyValuePair<ResourceProperty, object>>.Enumerator enumerator = filterPropertyFinder.FilterProperties.GetEnumerator(); try { while (enumerator.MoveNext()) { Func<ResourceProperty, bool> func = null; KeyValuePair<ResourceProperty, object> current = enumerator.Current; ReadOnlyCollection<ResourceProperty> properties = this.baseResourceType.Properties; if (func == null) { func = (ResourceProperty it) => { KeyValuePair<ResourceProperty, object> keyValuePair = current; return it.Name == keyValuePair.Key.Name; } ; } if (properties.FirstOrDefault<ResourceProperty>(func) != null) { continue; } flag = true; return flag; } return false; } finally { enumerator.Dispose(); } return flag; } else { return true; } } else { return true; } }
private bool DoesPredicateContainNavOrDerivedProperties(Expression expression, ResourceType type) { bool flag; FilterPropertyFinder filterPropertyFinder = new FilterPropertyFinder(expression); if (filterPropertyFinder.IsCompleteExpressionParsed) { List <KeyValuePair <ResourceProperty, object> > filterProperties = filterPropertyFinder.FilterProperties; bool flag1 = filterProperties.Any <KeyValuePair <ResourceProperty, object> >((KeyValuePair <ResourceProperty, object> it) => { if ((it.Key.Kind & ResourcePropertyKind.ResourceSetReference) == ResourcePropertyKind.ResourceSetReference) { return(true); } else { return((it.Key.Kind & ResourcePropertyKind.ResourceReference) == ResourcePropertyKind.ResourceReference); } } ); if (!flag1) { List <KeyValuePair <ResourceProperty, object> > .Enumerator enumerator = filterPropertyFinder.FilterProperties.GetEnumerator(); try { while (enumerator.MoveNext()) { Func <ResourceProperty, bool> func = null; KeyValuePair <ResourceProperty, object> current = enumerator.Current; ReadOnlyCollection <ResourceProperty> properties = this.baseResourceType.Properties; if (func == null) { func = (ResourceProperty it) => { KeyValuePair <ResourceProperty, object> keyValuePair = current; return(it.Name == keyValuePair.Key.Name); } ; } if (properties.FirstOrDefault <ResourceProperty>(func) != null) { continue; } flag = true; return(flag); } return(false); } finally { enumerator.Dispose(); } return(flag); } else { return(true); } } else { return(true); } }