Exemplo n.º 1
0
		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;
			}
		}
Exemplo n.º 2
0
        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);
            }
        }