示例#1
0
        public IList <int> ToIntervalList(FactsPartsDictionary FactsOfParts, IList <int> facts, bool ensurepartnr = false)
        {
            //cover here
            var items = FactsOfParts.SearchFactsIndexByKey(DictFilterIndexes.ToArray(), facts);

            foreach (var negativeindex in NegativeDictFilterIndexes)
            {
                if (FactsOfParts.ContainsKey(negativeindex))
                {
                    items = Utilities.Objects.SortedExcept(items, FactsOfParts[negativeindex]);
                }
            }
            if (ChildQueries.Count > 0)
            {
                var result = new IntervalList();

                foreach (var childquery in ChildQueries)
                {
                    result.AddRange(childquery.ToIntervalList(FactsOfParts, items));
                }
                return(result);
            }

            return(items);
        }