From 142aefa5d5a1665a06295d55bd6eb5739f76e7f7 Mon Sep 17 00:00:00 2001 From: Mike Alhayek Date: Fri, 19 Jan 2024 17:07:24 -0800 Subject: [PATCH 1/2] Prevent front end search if Azure AI is not configured --- .../Services/AzureAISearchService.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/OrchardCore/OrchardCore.Search.AzureAI.Core/Services/AzureAISearchService.cs b/src/OrchardCore/OrchardCore.Search.AzureAI.Core/Services/AzureAISearchService.cs index bdac55a3b97..40453e69b49 100644 --- a/src/OrchardCore/OrchardCore.Search.AzureAI.Core/Services/AzureAISearchService.cs +++ b/src/OrchardCore/OrchardCore.Search.AzureAI.Core/Services/AzureAISearchService.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using Azure.Search.Documents; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using OrchardCore.Contents.Indexing; using OrchardCore.Search.Abstractions; using OrchardCore.Search.AzureAI.Models; @@ -13,7 +14,8 @@ public class AzureAISearchService( ISiteService siteService, AzureAIIndexDocumentManager indexDocumentManager, AzureAISearchIndexSettingsService indexSettingsService, - ILogger logger + ILogger logger, + IOptions azureAIOptions ) : ISearchService { public const string Key = "Azure AI Search"; @@ -22,17 +24,26 @@ ILogger logger private readonly AzureAIIndexDocumentManager _indexDocumentManager = indexDocumentManager; private readonly AzureAISearchIndexSettingsService _indexSettingsService = indexSettingsService; private readonly ILogger _logger = logger; + private readonly AzureAISearchDefaultOptions _azureAIOptions = azureAIOptions.Value; public string Name => Key; public async Task SearchAsync(string indexName, string term, int start, int size) { + var result = new SearchResult(); + + if (!_azureAIOptions.IsConfigurationExists()) + { + _logger.LogWarning("Azure AI Search: Couldn't execute search. The Azure AI Search has not yet been configured."); + + return result; + } + var siteSettings = await _siteService.GetSiteSettingsAsync(); var searchSettings = siteSettings.As(); var index = !string.IsNullOrWhiteSpace(indexName) ? indexName.Trim() : searchSettings.SearchIndex; - var result = new SearchResult(); if (string.IsNullOrEmpty(index)) { _logger.LogWarning("Azure AI Search: Couldn't execute search. No search provider settings was defined."); From 4be355272ba5c1736555e8c85d3b6ccaf7880983 Mon Sep 17 00:00:00 2001 From: Mike Alhayek Date: Fri, 19 Jan 2024 17:08:30 -0800 Subject: [PATCH 2/2] cleanup --- .../Services/AzureAISearchService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OrchardCore/OrchardCore.Search.AzureAI.Core/Services/AzureAISearchService.cs b/src/OrchardCore/OrchardCore.Search.AzureAI.Core/Services/AzureAISearchService.cs index 40453e69b49..defa7695110 100644 --- a/src/OrchardCore/OrchardCore.Search.AzureAI.Core/Services/AzureAISearchService.cs +++ b/src/OrchardCore/OrchardCore.Search.AzureAI.Core/Services/AzureAISearchService.cs @@ -34,7 +34,7 @@ public async Task SearchAsync(string indexName, string term, int s if (!_azureAIOptions.IsConfigurationExists()) { - _logger.LogWarning("Azure AI Search: Couldn't execute search. The Azure AI Search has not yet been configured."); + _logger.LogWarning("Azure AI Search: Couldn't execute search. The Azure AI Search has not been configured."); return result; }