Example #1
0
        private static void RemoveFilterDescriptorPrefix(CompositeFilterDescriptor descriptors)
        {
            for (var i = descriptors.FilterDescriptors.Count - 1; i >= 0; i--)
            {
                var descriptor = descriptors.FilterDescriptors[i];
                var compositeFilterDescriptor = descriptor as CompositeFilterDescriptor;
                if (compositeFilterDescriptor != null)
                {
                    RemoveFilterDescriptorPrefix(compositeFilterDescriptor);
                    if (compositeFilterDescriptor.FilterDescriptors.Count == 0)
                    {
                        descriptors.FilterDescriptors.Remove(descriptor);
                    }
                    continue;
                }

                var filterDescriptor = descriptor as FilterDescriptor;
                if (filterDescriptor != null)
                {
                    if (filterDescriptor.Member.Contains("."))
                    {
                        filterDescriptor.Member = filterDescriptor.Member.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries).Last();
                    }
                }
            }
        }
Example #2
0
        private static void RemoveFilterDescriptorByPrefix(CompositeFilterDescriptor descriptors, string prefix)
        {
            for (var i = descriptors.FilterDescriptors.Count - 1; i >= 0; i--)
            {
                var descriptor = descriptors.FilterDescriptors[i];
                var compositeFilterDescriptor = descriptor as CompositeFilterDescriptor;
                if (compositeFilterDescriptor != null)
                {
                    RemoveFilterDescriptorByPrefix(compositeFilterDescriptor, prefix);
                    if (compositeFilterDescriptor.FilterDescriptors.Count == 0)
                    {
                        descriptors.FilterDescriptors.Remove(descriptor);
                    }
                    continue;
                }

                var filterDescriptor = descriptor as FilterDescriptor;
                if (filterDescriptor != null)
                {
                    if (filterDescriptor.Member.StartsWith(prefix + "."))
                    {
                        descriptors.FilterDescriptors.Remove(descriptor);
                    }
                }
            }
        }
Example #3
0
        private static bool IsContainsFilterDescriptorPrefix(CompositeFilterDescriptor descriptors, string prefix)
        {
            for (var i = descriptors.FilterDescriptors.Count - 1; i >= 0; i--)
            {
                var descriptor = descriptors.FilterDescriptors[i];
                var compositeFilterDescriptor = descriptor as CompositeFilterDescriptor;
                if (compositeFilterDescriptor != null)
                {
                    var value = IsContainsFilterDescriptorPrefix(compositeFilterDescriptor, prefix);
                    if (value)
                    {
                        return(true);
                    }
                    continue;
                }

                var filterDescriptor = descriptor as FilterDescriptor;
                if (filterDescriptor != null)
                {
                    if (filterDescriptor.Member.Contains(prefix + "."))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Example #4
0
        private static void FindInCompositeFilterDescriptor(CompositeFilterDescriptor descriptors, string memberName)
        {
            for (var i = descriptors.FilterDescriptors.Count - 1; i >= 0; i--)
            {
                var descriptor = descriptors.FilterDescriptors[i];
                var compositeFilterDescriptor = descriptor as CompositeFilterDescriptor;
                if (compositeFilterDescriptor != null)
                {
                    FindInCompositeFilterDescriptor(compositeFilterDescriptor, memberName);
                    if (compositeFilterDescriptor.FilterDescriptors.Count == 0)
                    {
                        descriptors.FilterDescriptors.Remove(descriptor);
                    }
                    continue;
                }

                var filterDescriptor = descriptor as FilterDescriptor;
                if (filterDescriptor != null)
                {
                    if (filterDescriptor.Member == memberName)
                    {
                        descriptors.FilterDescriptors.Remove(descriptor);
                    }
                }
            }
        }
Example #5
0
        public void StartVisit(ILogicalNode logicalNode)
        {
            var filterDescriptor1 = new CompositeFilterDescriptor
            {
                LogicalOperator = logicalNode.LogicalOperator
            };
            var filterDescriptor2 = CurrentDescriptor as CompositeFilterDescriptor;

            if (filterDescriptor2 != null)
            {
                filterDescriptor2.FilterDescriptors.Add(filterDescriptor1);
            }
            context.Push(filterDescriptor1);
        }
Example #6
0
        private static object GetFilterDescriptionValue(CompositeFilterDescriptor descriptors, string name)
        {
            for (var i = descriptors.FilterDescriptors.Count - 1; i >= 0; i--)
            {
                var descriptor = descriptors.FilterDescriptors[i];
                var compositeFilterDescriptor = descriptor as CompositeFilterDescriptor;
                if (compositeFilterDescriptor != null)
                {
                    return(GetFilterDescriptionValue(compositeFilterDescriptor, name));
                }

                var filterDescriptor = descriptor as FilterDescriptor;
                if (filterDescriptor != null)
                {
                    if (filterDescriptor.Member == name)
                    {
                        return(filterDescriptor.Value);
                    }
                }
            }

            return(null);
        }