private IReadOnlyCollection <DataSetValuePair> UpdateDatasetSource() { var cases = ViewModelLocatorStatic.Locator.CaseModule.Cases; LoadDataSet(cases); if (SelectedMonth != null) { if (SelectedMonth == "All") { var filteredcases = cases; cases = new ObservableCollection <CaseModel>(filteredcases); } else { var monthSelected = MonthOptions.IndexOf(SelectedMonth); var filteredcases = cases.Where(f => f.Model.CaseHearingDate?.Month == monthSelected); cases = new ObservableCollection <CaseModel>(filteredcases); } LoadDataSet(cases); } if (SelectedYear != null) { var year = 0; try { year = Convert.ToInt32(SelectedYear); } catch (Exception e) { year = DateTime.Now.Year; } var filteredcases = cases.Where(f => f.Model.CaseHearingDate?.Year == year); cases = new ObservableCollection <CaseModel>(filteredcases); LoadDataSet(cases); } if (Day != null) { var filteredcases = cases.Where(f => f.Model.CaseHearingDate?.Day == Day); cases = new ObservableCollection <CaseModel>(filteredcases); LoadDataSet(cases); } if (SelectedStatus != null) { if (SelectedStatus == "All") { var filteredcases = cases; cases = new ObservableCollection <CaseModel>(filteredcases); LoadDataSet(cases); } else { var filteredpersons = cases.Where(f => f.Model.CaseStatus == SelectedStatus); cases = new ObservableCollection <CaseModel>(filteredpersons); LoadDataSet(cases); } } // if (Respondent != null) // { // var r = Respondent.ToLowerInvariant(); // var filteredpersons = // cases.Where(f => f.Respondent.Model.FirstName.ToLowerInvariant().Contains(r) || // f.Respondent.Model.LastName.ToLowerInvariant().Contains(r) // ); // cases = new ObservableCollection<CaseModel>(filteredpersons); // LoadDataSet(cases); // } if (!string.IsNullOrWhiteSpace(Respondent) || !string.IsNullOrEmpty(Respondent)) { try { var personCollection = new ObservableCollection <CaseModel>(); foreach (var person in cases) { if (!string.IsNullOrWhiteSpace(person.Respondent.ToString()) || !string.IsNullOrEmpty(person.Respondent.ToString())) { if (person.Respondent.Model.FirstName.ToLowerInvariant().Contains(Respondent.ToLowerInvariant())) { personCollection.Add(person); } } } cases = new ObservableCollection <CaseModel>(personCollection); LoadDataSet(cases); } catch (Exception e) { } } _sources.Add(new DataSetValuePair("CaseDataSet", _casesDataSet.Where(c => TitleFilter != null && c.CaseId.ToLowerInvariant().Contains(TitleFilter.ToLowerInvariant()) || c.CaseName.ToLowerInvariant().Contains(TitleFilter.ToLowerInvariant())))); return(_sources); }