Пример #1
0
        public TraceLogFilterCondition(
            string expression, bool isEnabled, FilterConditionAction action)
        {
            IsEnabled = isEnabled;
            Action = action;

            Expression = expression;
        }
Пример #2
0
            private void ModifyFilter(
                DataColumnView column, FilterConditionAction action, object mask = null)
            {
                var filter = view.filterable.Filter ?? new TraceLogFilter();

                ModifyFilter(filter, column, action, mask);
                view.filterable.Filter = filter;
            }
Пример #3
0
        public TraceLogFilterCondition(
            Expression property, bool isEnabled, FilterRelationKind relation,
            FilterConditionAction action, object value)
        {
            IsEnabled = isEnabled;
            Action = action;

            Property = property;
            Relation = relation;
            Value = value;
        }
Пример #4
0
            private void ModifyFilter(
                TraceLogFilter filter, DataColumnView column,
                FilterConditionAction action, object mask = null)
            {
                Debug.Assert(rowIndex != null);

                var columnId = filterableColumnsMap[column.ColumnId];

                if (columnId != Guid.Empty)
                {
                    column = view.Columns.First(x => x.ColumnId == columnId);
                }
                else
                {
                    columnId = column.ColumnId;
                }

                var providerId = providerIdColumn[rowIndex.Value];

                string expr;

                if (columnId == providerIdColumn.Id)
                {
                    expr = $"ProviderId == {providerId:B}";
                }
                else if (mask == null)
                {
                    var field = columnToFieldMap[columnId];
                    var value = FormatValue(column.UntypedGetValue(rowIndex.Value));
                    expr = $"ProviderId == {providerId:B} && {field} == {value}";
                }
                else
                {
                    var field = columnToFieldMap[columnId];
                    expr = $"ProviderId == {providerId:B} && ({field} & {mask}) != 0";
                }

                filter.Conditions.Add(new TraceLogFilterCondition(expr, true, action));
            }