public (string SearchText, SearchOptions Options) GenerateSearchQuery() { var builder = new AzureSearchQueryBuilder(LearnAimRef) .WithSearchMode(SearchMode.All) .WithSearchFields(nameof(Lars.LearnAimRef)) .WithSize(1); if (CertificationEndDateFilter.HasValue) { builder.WithFilters($"({nameof(Lars.CertificationEndDate)} ge {CertificationEndDateFilter.Value:O} or {nameof(Lars.CertificationEndDate)} eq null)"); } return(builder.Build()); }
public (string SearchText, SearchOptions Options) GenerateSearchQuery() { var searchTerms = SearchText.TransformSegments(s => s .TransformWhen(s => s.EndsWith("'s"), s => s.Substring(0, s.Length - 2)) .TransformWhen(s => s.EndsWith("s'"), s => s.Substring(0, s.Length - 2)) .TransformWhen(s => s.EndsWith("s"), s => s.Substring(0, s.Length - 1)) .RemoveNonAlphanumericChars() .AppendWildcardWhenLastCharIsAlphanumeric()); var searchText = searchTerms.Any() ? $"\"{SearchText.Trim().EscapeSimpleQuerySearchOperators()}\" | ({searchTerms})" : !string.IsNullOrWhiteSpace(SearchText) ? $"{SearchText.Trim().EscapeSimpleQuerySearchOperators()}*" : "*"; var builder = new AzureSearchQueryBuilder(searchText) .WithSearchMode(SearchMode.All) .WithSearchFields(SearchFields?.ToArray()) .WithSearchInFilter(nameof(Lars.NotionalNVQLevelv2), NotionalNVQLevelv2Filters) .WithSearchInFilter(nameof(Lars.AwardOrgCode), AwardOrgCodeFilters) .WithSearchInFilter(nameof(Lars.AwardOrgAimRef), AwardOrgAimRefFilters) .WithSearchInFilter(nameof(Lars.SectorSubjectAreaTier1), SectorSubjectAreaTier1Filters) .WithSearchInFilter(nameof(Lars.SectorSubjectAreaTier2), SectorSubjectAreaTier2Filters) .WithFacets(Facets?.ToArray()) .WithSize(PageSize) .WithIncludeTotalCount(); if (CertificationEndDateFilter.HasValue) { builder.WithFilters($"({nameof(Lars.CertificationEndDate)} ge {CertificationEndDateFilter.Value:O} or {nameof(Lars.CertificationEndDate)} eq null)"); } if (PageNumber.HasValue) { builder.WithSkip(PageSize * (PageNumber - 1)); } return(builder.Build()); }