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(); } }
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); }
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(); }