Linq lambda pobierz wszystkie jeżeli warunki nie są spełnione

0

Witam
Mam taki problem. Mam gridView (używam kontrolek DevExpress, ale to bez znaczenia), w którym wyświetlane są jakieś rekordy. Potrzebuję sortować te rekordy po osobach i operacjach. To znaczy mogę wyświetlać - wszystkie operacje dla wszystkich osób, wszystkie operacje dla konkretnej osoby, konkretna operacja dla wszystkich osób i konkretna operacja dla konkretnej osoby. Binduje odpowiednie klasy do kontrolek comboBox oraz pod id = 0 wprowadza "Wszystkie operacje" oraz "Wszystkie osoby". Wcześniej zrobiłem to na instrukcjach warunkowych, ale nie podoba mi się to rozwiązanie, ponieważ jak dojdzie nowy comboBox to nie będę dodawał wiecznie nowych instrukcji warunkowych. Pytanie jak to rozwiązać przy wykorzystaniu LINQ i wyrażeń lambda. Próbowałem takie coś, ale wyświetla rekordy dopiero jak wybiorę osobę oraz operację.

Person selectedPerson = (Person)comboBoxEditPersons.SelectedItem;
Operation selectedOperation = (Operation)comboBoxEditOperations.SelectedItem;

this.gridControl1.DataSource = StaticData.SourceGridData
            .Where(x =>  (x.Person.PersonID == selectedPerson.PersonID &&  selectedPerson.PersonID !=0))
            .Where(x =>  (x.Operation.OperationID == selectedOperation.OperationID &&  selectedOperation.OperationID !=0))
            .ToList();
2
this.gridControl1.DataSource = StaticData.SourceGridData
            .Where(x =>  x.Person.PersonID !=0 ?  x.Person.PersonID == selectedPerson.PersonID :true)
            .Where(x =>  x.Operation.OperationID !=0 ? x.Operation.OperationID == selectedOperation.OperationID :true )
            .ToList();
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1