Ejemplo n.º 1
0
 protected virtual void OnFilterComplete(EventArgs e)
 {
     FilterComplete?.Invoke(this, e);
 }
Ejemplo n.º 2
0
        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);
        }