using System.Collections.Generic; using System.Linq; using Gos.Core.Extensions; using Gos.Core.Search.Queries; using Nest; namespace Gos.Infrastructure.Search.QueryBuilders { public abstract class BaseQueryBuilder { protected static List GetFilterQueries(Query query) { var queries = new List(); if (!query.DiscourseTypeIds.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "discourseTypeId", Terms = query.DiscourseTypeIds.Cast(), }); } if (!query.DiscourseChannelIds.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "discourseChannelId", Terms = query.DiscourseChannelIds.Cast(), }); } if (!query.DiscourseEventIds.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "discourseEventId", Terms = query.DiscourseEventIds.Cast(), }); } if (!query.DiscourseRegionIds.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "discourseRegionId", Terms = query.DiscourseRegionIds.Cast(), }); } if (!query.DiscourseYears.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "discourseYear", Terms = query.DiscourseYears.Cast(), }); } if (!query.SpeakerAgeIds.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "speakerAgeId", Terms = query.SpeakerAgeIds.Cast(), }); } if (!query.SpeakerEducationIds.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "speakerEducationId", Terms = query.SpeakerEducationIds.Cast(), }); } if (!query.SpeakerLanguageIds.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "speakerLanguageId", Terms = query.SpeakerLanguageIds.Cast(), }); } if (!query.SpeakerRegionIds.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "speakerRegionId", Terms = query.SpeakerRegionIds.Cast(), }); } if (!query.SpeakerSexIds.IsNullOrEmpty()) { queries.Add( new TermsQuery() { Field = "speakerSexId", Terms = query.SpeakerSexIds.Cast(), }); } return queries; } } }