public IEnumerable <ISpeaker> GetFilteredSpeakers(IEventFilters filters)
        {
            List <ISpeaker> result = null;

            // Remove any speaker filters first
            filters.SpeakerIds = new List <int>();
            var filteredSessionIds = _sessionRepository.FilterSessions(filters);

            if (filteredSessionIds != null)
            {
                var filteredSessions = _sessionRepository.GetSessionsInSessionIdList(filteredSessionIds);
                if (filteredSessions != null)
                {
                    var videoIds = _videoRepository.GetVideoIdListBySessionList(filteredSessions);
                    if (videoIds != null && videoIds.Count() > 0)
                    {
                        var speakerIds = _speakerVideoRepository.GetSpeakerIdListWhereInVideoIdList(videoIds);
                        if (speakerIds != null && speakerIds.Count() > 0)
                        {
                            result = _speakerRepository.GetWhereInSpeakerIdList(speakerIds).OrderBy(x => x.Name).ToList();
                        }
                    }
                }
            }
            return(result);
        }