Ejemplo n.º 1
0
        FilterDataPair InnerMatch(MessageBuffer messageBuffer)
        {
            List <FilterDataPair> pairs = new List <FilterDataPair>();

            table.GetMatchingValues(messageBuffer, pairs);

            FilterDataPair pair = null;

            for (int i = 0; i < pairs.Count; ++i)
            {
                if (pairs[i].filter.Filter2.Match(messageBuffer))
                {
                    if (pair != null)
                    {
                        Collection <MessageFilter> matches = new Collection <MessageFilter>();
                        matches.Add(pair.filter);
                        matches.Add(pairs[i].filter);
                        throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MultipleFilterMatchesException(SR.FilterMultipleMatches, null, matches));
                    }
                    pair = pairs[i];
                }
            }

            return(pair);
        }
Ejemplo n.º 2
0
        private FilterDataPair InnerMatch(Message message)
        {
            List <FilterDataPair> pairs = new List <FilterDataPair>();

            _table.GetMatchingValues(message, pairs);

            FilterDataPair pair = null;

            for (int i = 0; i < pairs.Count; ++i)
            {
                if (pairs[i]._filter.Filter2.Match(message))
                {
                    if (pair != null)
                    {
                        Collection <MessageFilter> matches = new Collection <MessageFilter>
                        {
                            pair._filter,
                            pairs[i]._filter
                        };
                        throw TraceUtility.ThrowHelperError(new MultipleFilterMatchesException(SR.FilterMultipleMatches, null, matches), message);
                    }
                    pair = pairs[i];
                }
            }

            return(pair);
        }
Ejemplo n.º 3
0
        internal bool GetMatchingValue(Message message, out FilterData data, out bool addressMatched)
        {
            if (message == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message");
            }
            List <FilterDataPair <FilterData> > results = new List <FilterDataPair <FilterData> >();

            addressMatched = this.table.GetMatchingValues(message, results);
            FilterDataPair <FilterData> pair = null;

            for (int i = 0; i < results.Count; i++)
            {
                if (results[i].filter.Filter2.Match(message))
                {
                    if (pair != null)
                    {
                        Collection <MessageFilter> filters = new Collection <MessageFilter> {
                            pair.filter,
                            results[i].filter
                        };
                        throw TraceUtility.ThrowHelperError(new MultipleFilterMatchesException(System.ServiceModel.SR.GetString("FilterMultipleMatches"), null, filters), message);
                    }
                    pair = results[i];
                }
            }
            if (pair == null)
            {
                data = default(FilterData);
                return(false);
            }
            data = pair.data;
            return(true);
        }
Ejemplo n.º 4
0
        public void Add(AndMessageFilter filter, FilterData data)
        {
            if (filter == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("filter");
            }
            this.filters.Add(filter, data);
            FilterDataPair <FilterData> pair = new FilterDataPair <FilterData>(filter, data);

            this.filterData.Add(filter, pair);
            this.table.Add(filter.Filter1, pair);
        }
Ejemplo n.º 5
0
        public void Add(AndMessageFilter filter, FilterData data)
        {
            if (filter == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(filter));
            }

            filters.Add(filter, data);

            FilterDataPair pair = new FilterDataPair(filter, data);

            filterData.Add(filter, pair);

            table.Add(filter.Filter1, pair);
        }
Ejemplo n.º 6
0
        public bool GetMatchingFilter(Message message, out MessageFilter filter)
        {
            if (message == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message");
            }
            FilterDataPair <FilterData> pair = this.InnerMatch(message);

            if (pair == null)
            {
                filter = null;
                return(false);
            }
            filter = pair.filter;
            return(true);
        }
Ejemplo n.º 7
0
        public bool GetMatchingValue(MessageBuffer messageBuffer, out FilterData data)
        {
            if (messageBuffer == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("messageBuffer");
            }
            FilterDataPair <FilterData> pair = this.InnerMatch(messageBuffer);

            if (pair == null)
            {
                data = default(FilterData);
                return(false);
            }
            data = pair.data;
            return(true);
        }
Ejemplo n.º 8
0
        public bool GetMatchingFilter(MessageBuffer messageBuffer, out MessageFilter filter)
        {
            if (messageBuffer == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(messageBuffer));
            }

            FilterDataPair pair = InnerMatch(messageBuffer);

            if (pair == null)
            {
                filter = null;
                return(false);
            }

            filter = pair.filter;
            return(true);
        }
Ejemplo n.º 9
0
        public bool GetMatchingValue(Message message, out FilterData data)
        {
            if (message == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(message));
            }

            FilterDataPair pair = InnerMatch(message);

            if (pair == null)
            {
                data = default(FilterData);
                return(false);
            }

            data = pair.data;
            return(true);
        }
Ejemplo n.º 10
0
        internal bool GetMatchingValue(Message message, out FilterData data, out bool addressMatched)
        {
            if (message == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(message));
            }

            List <FilterDataPair> pairs = new List <FilterDataPair>();

            addressMatched = _table.GetMatchingValues(message, pairs);

            FilterDataPair pair = null;

            for (int i = 0; i < pairs.Count; ++i)
            {
                if (pairs[i]._filter.Filter2.Match(message))
                {
                    if (pair != null)
                    {
                        Collection <MessageFilter> matches = new Collection <MessageFilter>
                        {
                            pair._filter,
                            pairs[i]._filter
                        };
                        throw TraceUtility.ThrowHelperError(new MultipleFilterMatchesException(SR.FilterMultipleMatches, null, matches), message);
                    }
                    pair = pairs[i];
                }
            }

            if (pair == null)
            {
                data = default;
                return(false);
            }

            data = pair._data;
            return(true);
        }
Ejemplo n.º 11
0
        private FilterDataPair <FilterData> InnerMatch(MessageBuffer messageBuffer)
        {
            List <FilterDataPair <FilterData> > results = new List <FilterDataPair <FilterData> >();

            this.table.GetMatchingValues(messageBuffer, results);
            FilterDataPair <FilterData> pair = null;

            for (int i = 0; i < results.Count; i++)
            {
                if (results[i].filter.Filter2.Match(messageBuffer))
                {
                    if (pair != null)
                    {
                        Collection <MessageFilter> filters = new Collection <MessageFilter> {
                            pair.filter,
                            results[i].filter
                        };
                        throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MultipleFilterMatchesException(System.ServiceModel.SR.GetString("FilterMultipleMatches"), null, filters));
                    }
                    pair = results[i];
                }
            }
            return(pair);
        }