219 references to FilterCondition
Aspire.Dashboard (119)
Api\TelemetryApiService.cs (19)
101Condition = hasError.Value ? FilterCondition.Equals : FilterCondition.NotEqual 186Condition = FilterCondition.Contains 200Condition = FilterCondition.GreaterThanOrEqual 298Condition = FilterCondition.Contains 311Condition = FilterCondition.GreaterThanOrEqual 494/// Maps a <see cref="ComparisonOperator"/> to the corresponding <see cref="FilterCondition"/>, 497private static FilterCondition ToFilterCondition(ComparisonOperator op, bool negated) => (op, negated) switch 499(ComparisonOperator.Contains, false) => FilterCondition.Contains, 500(ComparisonOperator.Contains, true) => FilterCondition.NotContains, 501(ComparisonOperator.GreaterThan, false) => FilterCondition.GreaterThan, 502(ComparisonOperator.GreaterThan, true) => FilterCondition.LessThanOrEqual, 503(ComparisonOperator.GreaterThanOrEqual, false) => FilterCondition.GreaterThanOrEqual, 504(ComparisonOperator.GreaterThanOrEqual, true) => FilterCondition.LessThan, 505(ComparisonOperator.LessThan, false) => FilterCondition.LessThan, 506(ComparisonOperator.LessThan, true) => FilterCondition.GreaterThanOrEqual, 507(ComparisonOperator.LessThanOrEqual, false) => FilterCondition.LessThanOrEqual, 508(ComparisonOperator.LessThanOrEqual, true) => FilterCondition.GreaterThan, 509_ => FilterCondition.Contains
Components\Dialogs\FilterDialog.razor.cs (27)
22private List<SelectViewModel<FilterCondition>> _filterConditions = null!; 23private List<SelectViewModel<FilterCondition>> _stringFilterConditions = null!; 24private List<SelectViewModel<FilterCondition>> _numericFilterConditions = null!; 25private List<SelectViewModel<FilterCondition>> _dateFilterConditions = null!; 27private SelectViewModel<FilterCondition> CreateFilterSelectViewModel(FilterCondition condition) => 28new SelectViewModel<FilterCondition> { Id = condition, Name = FieldTelemetryFilter.ConditionToString(condition, FilterLoc) }; 63CreateFilterSelectViewModel(FilterCondition.Equals), 64CreateFilterSelectViewModel(FilterCondition.Contains), 65CreateFilterSelectViewModel(FilterCondition.NotEqual), 66CreateFilterSelectViewModel(FilterCondition.NotContains) 71CreateFilterSelectViewModel(FilterCondition.Equals), 72CreateFilterSelectViewModel(FilterCondition.NotEqual), 73CreateFilterSelectViewModel(FilterCondition.GreaterThanOrEqual), 74CreateFilterSelectViewModel(FilterCondition.GreaterThan), 75CreateFilterSelectViewModel(FilterCondition.LessThanOrEqual), 76CreateFilterSelectViewModel(FilterCondition.LessThan) 81CreateFilterSelectViewModel(FilterCondition.GreaterThanOrEqual), 82CreateFilterSelectViewModel(FilterCondition.GreaterThan), 83CreateFilterSelectViewModel(FilterCondition.LessThanOrEqual), 84CreateFilterSelectViewModel(FilterCondition.LessThan), 85CreateFilterSelectViewModel(FilterCondition.Equals), 86CreateFilterSelectViewModel(FilterCondition.NotEqual) 179private SelectViewModel<FilterCondition> GetDefaultCondition() 181var condition = (_formModel.ValueIsNumeric || _formModel.ValueIsDate) ? FilterCondition.GreaterThanOrEqual : FilterCondition.Contains;
Components\Pages\StructuredLogs.razor.cs (2)
185Field = KnownStructuredLogFields.TraceIdField, Condition = FilterCondition.Equals, Value = TraceId 192Field = KnownStructuredLogFields.SpanIdField, Condition = FilterCondition.Equals, Value = SpanId
Components\Pages\TraceDetail.razor.cs (1)
294Condition = FilterCondition.Equals,
Extensions\TelemetryFilterFormatter.cs (17)
17FilterCondition.Equals => "equals", 18FilterCondition.Contains => "contains", 19FilterCondition.GreaterThan => "gt", 20FilterCondition.LessThan => "lt", 21FilterCondition.GreaterThanOrEqual => "gte", 22FilterCondition.LessThanOrEqual => "lte", 23FilterCondition.NotEqual => "!equals", 24FilterCondition.NotContains => "!contains", 52FilterCondition? condition = parts[1] switch 54"equals" => FilterCondition.Equals, 55"contains" => FilterCondition.Contains, 56"gt" => FilterCondition.GreaterThan, 57"lt" => FilterCondition.LessThan, 58"gte" => FilterCondition.GreaterThanOrEqual, 59"lte" => FilterCondition.LessThanOrEqual, 60"!equals" => FilterCondition.NotEqual, 61"!contains" => FilterCondition.NotContains,
Model\GenAI\GenAIVisualizerDialogViewModel.cs (1)
608Condition = FilterCondition.Equals,
Model\Otlp\FilterDialogFormModel.cs (1)
16public SelectViewModel<FilterCondition>? Condition { get; set; }
Model\Otlp\TelemetryFilter.cs (10)
23public FilterCondition Condition { get; set; } 76public static string ConditionToString(FilterCondition c, IStringLocalizer<StructuredFiltering>? loc) => 79FilterCondition.Equals => "==", 80FilterCondition.Contains => loc?[nameof(StructuredFiltering.ConditionContains)] ?? "contains", 81FilterCondition.GreaterThan => ">", 82FilterCondition.LessThan => "<", 83FilterCondition.GreaterThanOrEqual => ">=", 84FilterCondition.LessThanOrEqual => "<=", 85FilterCondition.NotEqual => "!=", 86FilterCondition.NotContains => loc?[nameof(StructuredFiltering.ConditionNotContains)] ?? "not contains",
Model\StructuredLogsViewModel.cs (2)
112filters.Add(new FieldTelemetryFilter { Field = nameof(OtlpLogEntry.Message), Condition = FilterCondition.Contains, Value = filterText }); 117filters.Add(new FieldTelemetryFilter { Field = nameof(OtlpLogEntry.Severity), Condition = FilterCondition.GreaterThanOrEqual, Value = logLevel.Value.ToString() });
Otlp\Storage\SqliteTelemetryRepository.cs (3)
190new FieldTelemetryFilter { Field = KnownStructuredLogFields.TraceIdField, Condition = FilterCondition.Equals, Value = traceId }, 191new FieldTelemetryFilter { Field = KnownStructuredLogFields.SpanIdField, Condition = FilterCondition.Equals, Value = spanId } 205new FieldTelemetryFilter { Field = KnownStructuredLogFields.TraceIdField, Condition = FilterCondition.Equals, Value = traceId }
Otlp\Storage\SqliteTelemetryRepository.Logs.cs (20)
607filter.Condition is FilterCondition.Contains or FilterCondition.NotContains 645private static string BuildStringPredicate(string expression, FilterCondition condition, string parameterName) 649FilterCondition.Equals => $"{expression} = @{parameterName} COLLATE NOCASE", 650FilterCondition.Contains => $"{expression} LIKE @{parameterName} ESCAPE '!'", 651FilterCondition.GreaterThan or FilterCondition.LessThan or FilterCondition.GreaterThanOrEqual or FilterCondition.LessThanOrEqual => "0 = 1", 652FilterCondition.NotEqual => $"{expression} <> @{parameterName} COLLATE NOCASE", 653FilterCondition.NotContains => $"{expression} NOT LIKE @{parameterName} ESCAPE '!'", 658private static string BuildNumericPredicate(string expression, FilterCondition condition, string parameterName) 662FilterCondition.Equals => "=", 663FilterCondition.GreaterThan => ">", 664FilterCondition.LessThan => "<", 665FilterCondition.GreaterThanOrEqual => ">=", 666FilterCondition.LessThanOrEqual => "<=", 667FilterCondition.NotEqual => "<>", 668FilterCondition.Contains or FilterCondition.NotContains => null,
Otlp\Storage\SqliteTelemetryRepository.Traces.Reads.cs (16)
228if (fieldFilter.Condition is FilterCondition.NotEqual or FilterCondition.NotContains) 333var condition = invertNegative 336FilterCondition.NotEqual => FilterCondition.Equals, 337FilterCondition.NotContains => FilterCondition.Contains, 343condition is FilterCondition.Contains or FilterCondition.NotContains 376if (condition is FilterCondition.NotEqual or FilterCondition.NotContains) 503if (fieldFilter.Condition is FilterCondition.NotEqual or FilterCondition.NotContains && 509Condition = fieldFilter.Condition == FilterCondition.NotEqual ? FilterCondition.Equals : FilterCondition.Contains,
Aspire.Dashboard.Components.Tests (37)
Dialogs\FilterDialogTests.cs (30)
28Condition = FilterCondition.GreaterThanOrEqual, 36var conditionSelect = Assert.Single(cut.FindComponents<FluentSelect<SelectViewModel<FilterCondition>, SelectViewModel<FilterCondition>>>()); 38item => Assert.Equal(FilterCondition.Equals, item.Id), 39item => Assert.Equal(FilterCondition.NotEqual, item.Id), 40item => Assert.Equal(FilterCondition.GreaterThanOrEqual, item.Id), 41item => Assert.Equal(FilterCondition.GreaterThan, item.Id), 42item => Assert.Equal(FilterCondition.LessThanOrEqual, item.Id), 43item => Assert.Equal(FilterCondition.LessThan, item.Id)); 58Condition = FilterCondition.GreaterThanOrEqual, 76Condition = FilterCondition.Contains, 94var conditionSelect = Assert.Single(cut.FindComponents<FluentSelect<SelectViewModel<FilterCondition>, SelectViewModel<FilterCondition>>>()); 97item => Assert.Equal(FilterCondition.Equals, item.Id), 98item => Assert.Equal(FilterCondition.Contains, item.Id), 99item => Assert.Equal(FilterCondition.NotEqual, item.Id), 100item => Assert.Equal(FilterCondition.NotContains, item.Id)); 112Condition = FilterCondition.Contains, 154Condition = FilterCondition.Contains, 198Condition = FilterCondition.Contains, 235Condition = FilterCondition.Contains, 289Condition = FilterCondition.Contains, 328Condition = FilterCondition.Contains, 366Condition = FilterCondition.Contains, 405Condition = FilterCondition.Contains, 431Condition = FilterCondition.Contains, 456Condition = FilterCondition.GreaterThanOrEqual, 479Condition = FilterCondition.GreaterThanOrEqual, 500Condition = FilterCondition.Contains, 524Condition = FilterCondition.Contains,
Pages\StructuredLogsTests.cs (4)
127var filter = new FieldTelemetryFilter { Field = "TestField", Condition = FilterCondition.Contains, Value = "TestValue" }; 163var filter1 = new FieldTelemetryFilter { Field = "Test:Field", Condition = FilterCondition.Contains, Value = "Test Value" }; 164var filter2 = new FieldTelemetryFilter { Field = "Test!@#", Condition = FilterCondition.Contains, Value = "http://localhost#fragment?hi=true" }; 165var filter3 = new FieldTelemetryFilter { Field = "\u2764\uFE0F", Condition = FilterCondition.Contains, Value = "\u4F60" };
Pages\TraceDetailsTests.cs (3)
606Condition = FilterCondition.GreaterThanOrEqual, 633Condition = FilterCondition.GreaterThanOrEqual, 730Condition = FilterCondition.GreaterThanOrEqual,
Aspire.Dashboard.Tests (63)
DashboardUrlsTests.cs (4)
35new FieldTelemetryFilter { Condition = FilterCondition.Contains, Field = "test", Value = "value" } 46new FieldTelemetryFilter { Condition = FilterCondition.Contains, Field = "test", Value = "value" }, 47new FieldTelemetryFilter { Condition = FilterCondition.GreaterThan, Field = "fieldWithSpacedValue", Value = "!! multiple words here !!", Enabled = false }, 48new FieldTelemetryFilter { Condition = FilterCondition.NotEqual, Field = "name", Value = "nameValue" },
Model\StructuredLogsPageViewModelTests.cs (4)
143Condition = FilterCondition.Contains, 163Condition = FilterCondition.Contains, 183Condition = FilterCondition.Contains, 204Condition = FilterCondition.Contains,
TelemetryFilterFormatterTests.cs (5)
24Condition = FilterCondition.GreaterThanOrEqual, 34Assert.Equal(FilterCondition.GreaterThanOrEqual, filter.Condition); 50Condition = FilterCondition.Equals, 70Condition = FilterCondition.Equals, 90Condition = FilterCondition.Equals,
TelemetryRepositoryTests\LogTests.cs (9)
262Condition = FilterCondition.Equals, 1067Filters = [new FieldTelemetryFilter { Condition = FilterCondition.Contains, Field = nameof(OtlpLogEntry.Message), Value = "does_not_contain" }] 1075Filters = [new FieldTelemetryFilter { Condition = FilterCondition.Contains, Field = nameof(OtlpLogEntry.Message), Value = "MESSAGE" }] 1112Filters = [new FieldTelemetryFilter { Condition = FilterCondition.Contains, Field = nameof(OtlpLogEntry.Message), Value = fragment }] 1154Filters = [new FieldTelemetryFilter { Condition = FilterCondition.Contains, Field = KnownStructuredLogFields.EventNameField, Value = "does_not_contain" }] 1162Filters = [new FieldTelemetryFilter { Condition = FilterCondition.Contains, Field = KnownStructuredLogFields.EventNameField, Value = "MyEvent" }] 1799Condition = FilterCondition.Contains, 1806Condition = FilterCondition.Contains, 1875Condition = FilterCondition.Equals,
TelemetryRepositoryTests\TelemetryRepositoryTests.cs (6)
947Condition = FilterCondition.Contains 1038Condition = FilterCondition.GreaterThanOrEqual 1215Condition = FilterCondition.Contains, 1222Condition = FilterCondition.Contains, 1312Condition = FilterCondition.Contains, 1319Condition = FilterCondition.Contains,
TelemetryRepositoryTests\TraceTests.cs (35)
169Condition = FilterCondition.Equals, 1708new FieldTelemetryFilter { Field = "key1", Condition = FilterCondition.Equals, Value = "value1" } 1726new FieldTelemetryFilter { Field = "key2", Condition = FilterCondition.Equals, Value = "value2" } 1744new FieldTelemetryFilter { Field = "key1", Condition = FilterCondition.Equals, Value = "value1" }, 1745new FieldTelemetryFilter { Field = "key2", Condition = FilterCondition.Equals, Value = "value2" } 1797new FieldTelemetryFilter { Field = name, Condition = FilterCondition.NotEqual, Value = value } 1812new FieldTelemetryFilter { Field = name, Condition = FilterCondition.Equals, Value = value } 1867new FieldTelemetryFilter { Field = "dynamic.filter", Condition = FilterCondition.Equals, Value = "match" }, 1868new FieldTelemetryFilter { Field = KnownTraceFields.DurationField, Condition = FilterCondition.GreaterThanOrEqual, Value = "20" } 1924Filters = [new FieldTelemetryFilter { Field = KnownTraceFields.DurationField, Condition = FilterCondition.GreaterThan, Value = "50" }] 1936Filters = [new FieldTelemetryFilter { Field = KnownTraceFields.DurationField, Condition = FilterCondition.LessThan, Value = "10" }] 1974new FieldTelemetryFilter { Field = "key1", Condition = FilterCondition.NotEqual, Value = "other_value" } 3340[InlineData(FilterCondition.Equals, "1", "3")] 3341[InlineData(FilterCondition.NotEqual, "2")] 3342public async Task GetTraces_StatusFilter_ReturnsMatchingTraces(FilterCondition condition, params string[] expectedTraceIds) 3450[InlineData(FilterCondition.NotEqual, "TestService", 0)] 3451[InlineData(FilterCondition.NotEqual, "TestPeer", 0)] 3452[InlineData(FilterCondition.NotEqual, "other", 1)] 3453[InlineData(FilterCondition.NotContains, "Service", 0)] 3454[InlineData(FilterCondition.NotContains, "Peer", 0)] 3455[InlineData(FilterCondition.NotContains, "other", 1)] 3456public async Task GetSpans_NegativeServiceNameFilter_AppliesToSourceAndPeer(FilterCondition condition, string value, int expectedCount) 3545Condition = FilterCondition.GreaterThanOrEqual, 3735Condition = FilterCondition.Equals, 3982Condition = FilterCondition.Contains, 3989Condition = FilterCondition.Contains, 4044Condition = FilterCondition.NotContains, 4094Condition = FilterCondition.NotContains, 4145Condition = FilterCondition.NotEqual, 4228new FieldTelemetryFilter { Field = "env", Condition = FilterCondition.Contains, Value = "prod" }, 4229new FieldTelemetryFilter { Field = KnownTraceFields.NameField, Condition = FilterCondition.NotContains, Value = "1-1" } 4286Condition = FilterCondition.NotContains, 4339Condition = FilterCondition.NotContains, 4394Condition = FilterCondition.NotContains, 4468Condition = FilterCondition.NotEqual,