@@ -234,23 +234,14 @@ public bool GroupByLocation
234
234
}
235
235
}
236
236
237
- private List < CodeInspectionSeverity > _filterCriteria = new List < CodeInspectionSeverity > ( ) ;
237
+ private readonly List < CodeInspectionSeverity > _filterCriteria = new List < CodeInspectionSeverity > ( ) ;
238
238
239
239
public bool FilterInspectionsByHint
240
240
{
241
241
get => _filterCriteria . Contains ( CodeInspectionSeverity . Hint ) ;
242
242
set
243
243
{
244
- if ( FilterInspectionsByHint == value ) { return ; }
245
-
246
- if ( value )
247
- {
248
- _filterCriteria . Add ( CodeInspectionSeverity . Hint ) ;
249
- }
250
- else
251
- {
252
- _filterCriteria . Remove ( CodeInspectionSeverity . Hint ) ;
253
- }
244
+ UpdateFilterCriteria ( value , CodeInspectionSeverity . Hint ) ;
254
245
255
246
FilterResults ( _filterCriteria ) ;
256
247
OnPropertyChanged ( ) ;
@@ -262,16 +253,7 @@ public bool FilterInspectionsBySuggestion
262
253
get => _filterCriteria . Contains ( CodeInspectionSeverity . Suggestion ) ;
263
254
set
264
255
{
265
- if ( FilterInspectionsBySuggestion == value ) { return ; }
266
-
267
- if ( value )
268
- {
269
- _filterCriteria . Add ( CodeInspectionSeverity . Suggestion ) ;
270
- }
271
- else
272
- {
273
- _filterCriteria . Remove ( CodeInspectionSeverity . Suggestion ) ;
274
- }
256
+ UpdateFilterCriteria ( value , CodeInspectionSeverity . Suggestion ) ;
275
257
276
258
FilterResults ( _filterCriteria ) ;
277
259
OnPropertyChanged ( ) ;
@@ -283,16 +265,7 @@ public bool FilterInspectionsByWarning
283
265
get => _filterCriteria . Contains ( CodeInspectionSeverity . Warning ) ;
284
266
set
285
267
{
286
- if ( FilterInspectionsByWarning == value ) { return ; }
287
-
288
- if ( value )
289
- {
290
- _filterCriteria . Add ( CodeInspectionSeverity . Warning ) ;
291
- }
292
- else
293
- {
294
- _filterCriteria . Remove ( CodeInspectionSeverity . Warning ) ;
295
- }
268
+ UpdateFilterCriteria ( value , CodeInspectionSeverity . Warning ) ;
296
269
297
270
FilterResults ( _filterCriteria ) ;
298
271
OnPropertyChanged ( ) ;
@@ -304,29 +277,35 @@ public bool FilterInspectionsByError
304
277
get => _filterCriteria . Contains ( CodeInspectionSeverity . Error ) ;
305
278
set
306
279
{
307
- if ( FilterInspectionsByError == value ) { return ; }
308
-
309
- if ( value )
310
- {
311
- _filterCriteria . Add ( CodeInspectionSeverity . Error ) ;
312
- }
313
- else
314
- {
315
- _filterCriteria . Remove ( CodeInspectionSeverity . Error ) ;
316
- }
280
+ UpdateFilterCriteria ( value , CodeInspectionSeverity . Error ) ;
317
281
318
282
FilterResults ( _filterCriteria ) ;
319
283
OnPropertyChanged ( ) ;
320
284
}
321
285
}
322
286
287
+ private void UpdateFilterCriteria ( bool isCriteria , CodeInspectionSeverity criteria )
288
+ {
289
+ if ( _filterCriteria . Contains ( criteria ) == isCriteria ) { return ; }
290
+
291
+ if ( isCriteria )
292
+ {
293
+ _filterCriteria . Add ( criteria ) ;
294
+ }
295
+ else
296
+ {
297
+ _filterCriteria . Remove ( criteria ) ;
298
+ }
299
+ }
300
+
323
301
public void FilterResults ( IEnumerable < CodeInspectionSeverity > inspections )
324
302
{
325
303
if ( _filterCriteria . Any ( ) )
326
304
{
327
- Results = new ObservableCollection < IInspectionResult > (
328
- _resultsAll . Where ( o => _filterCriteria . Contains ( o . Inspection . Severity ) )
329
- . ToList ( ) ) ;
305
+ Results = new ObservableCollection < IInspectionResult > ( _resultsAll
306
+ . GroupBy ( result => result . Inspection . Severity )
307
+ . Where ( group => _filterCriteria . Contains ( group . Key ) )
308
+ . SelectMany ( x => x ) ) ;
330
309
}
331
310
else
332
311
{
0 commit comments