protected virtual void OnFilterComplete(EventArgs e) { FilterComplete?.Invoke(this, e); }
private void FilterPresentations(Tuple <FilterType, List <object> > e) { if (Filters == null) { Filters = new EventFilters(); } switch (e.Item1) { case FilterType.Event: if (e.Item2 == null || e.Item2.Count == 0) { ClearAllOtherFilters(); } Filters.EventNames = new List <string>(); foreach (var filter in e.Item2) { Filters.EventNames.Add(filter.ToString()); } break; case FilterType.Year: ClearAllOtherFilters(); foreach (var filter in e.Item2) { Filters.EventYears.Add(filter.ToString()); } break; case FilterType.SessionType: Filters.SessionTypes = new List <string>(); foreach (var filter in e.Item2) { Filters.SessionTypes.Add(filter.ToString()); } break; case FilterType.Category: Filters.CategoryIds = new List <int>(); Filters.CategoryNames = new List <string>(); foreach (var filter in e.Item2) { Filters.CategoryIds.Add((filter as Category).Id); Filters.CategoryNames.Add((filter as Category).Name); } break; case FilterType.Speaker: Filters.SpeakerIds = new List <int>(); Filters.SpeakerNames = new List <string>(); foreach (var filter in e.Item2) { Filters.SpeakerIds.Add((filter as Speaker).Id); Filters.SpeakerNames.Add((filter as Speaker).Name); } break; } // Must be filtering at least by Event and Year to display presentations List <IPresentation> presentations = null; var requiredFilters = new List <FilterType>() { FilterType.Event, FilterType.Year }; var canFilter = ContainsFilterControlTypes(requiredFilters); if (canFilter) { presentations = _presentationService.GetFilteredPresentations(Filters).ToList(); } UpdateFilterControls(e); UpdateSelectedFiltersIndicator(); FilterComplete?.Invoke(presentations); }