예제 #1
0
        private void AddExpressionByProperty(FilteringInfo info, string propertyType, string conditionType, string equalOperator, string value)
        {
            switch (propertyType)
            {
            case "pv":
                AddExpressionByCondition(info.ProductVersionCondition, conditionType, equalOperator, value);
                break;

            case "fv":
                AddExpressionByCondition(info.FileVersionCondition, conditionType, equalOperator, value);
                break;

            case "fp":
                AddExpressionByCondition(info.FilePathCondition, conditionType, equalOperator, value);
                break;

            case "sg":
                AddExpressionByCondition(info.SignatureCondition, conditionType, equalOperator, value);
                break;

            case "an":
                AddExpressionByCondition(info.AssemblyCondition, conditionType, equalOperator, value);
                break;

            default:
                throw new InvalidOperationException();
            }
        }
예제 #2
0
        public FilteringInfo GetFilteringInfo()
        {
            FilteringInfo info = new FilteringInfo();

            foreach (string expression in _filteringExpressions)
            {
                Tuple <string, string, string, string> filter = ParseExpression(expression);
                AddExpressionByProperty(info, filter.Item1, filter.Item2, filter.Item3, filter.Item4);
            }

            return(info);
        }
예제 #3
0
        private void ApplyFilteting()
        {
            _fileRecords.Clear();
            FilteringInfo info = _filteringManager.GetFilteringInfo();

            foreach (FileRecord record in _allFileRecords)
            {
                if (info.IsCorrectFileRecord(record))
                {
                    _fileRecords.Add(record);
                }

                if (info.DoHighlightRecord(record))
                {
                    record.DoHighlight = true;
                }
                else
                {
                    record.DoHighlight = false;
                }
            }

            UpdateFilteringStatus();
        }