From e1ec6ee1b4cd7cead18870b1424e8bcd2270a182 Mon Sep 17 00:00:00 2001 From: Swapnamol Abraham Date: Tue, 2 Jul 2024 15:04:15 +0100 Subject: [PATCH] TD-4330: Resource links in search results direct to error page --- .../Views/Search/_ResourceSearchResult.cshtml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/LearningHub.Nhs.WebUI/Views/Search/_ResourceSearchResult.cshtml b/LearningHub.Nhs.WebUI/Views/Search/_ResourceSearchResult.cshtml index f5eac8b6c..415e9d550 100644 --- a/LearningHub.Nhs.WebUI/Views/Search/_ResourceSearchResult.cshtml +++ b/LearningHub.Nhs.WebUI/Views/Search/_ResourceSearchResult.cshtml @@ -14,15 +14,21 @@ var index = pagingModel.CurrentPage * pagingModel.PageSize; var searchString = HttpUtility.UrlEncode(Model.SearchString); var searchSignal = resourceResult.Feedback?.FeedbackAction?.Payload?.SearchSignal; - + int qVectorIndex = searchSignal.Query?.IndexOf("q_vector") ?? -1; + var searchSignalQuery = searchSignal?.Query; + // Check if "q_vector" is found in the string. if Yes, Remove "q_vector" and everything after it + if (qVectorIndex != -1) + { + searchSignalQuery = searchSignal?.Query.Substring(0, qVectorIndex); + } string GetUrl(int resourceReferenceId, int itemIndex, int nodePathId) { string groupId = HttpUtility.UrlEncode(Model.GroupId.ToString()); - string searchSignalQueryEncoded = HttpUtility.UrlEncode(HttpUtility.UrlDecode(searchSignal?.Query)); + string searchSignalQueryEncoded = HttpUtility.UrlEncode(HttpUtility.UrlDecode(searchSignalQuery)); return $@"/search/record-resource-click?url=/Resource/{resourceReferenceId}&nodePathId={nodePathId}&itemIndex={itemIndex} &pageIndex={pagingModel.CurrentPage}&totalNumberOfHits={resourceResult.TotalHits}&searchText={searchString}&resourceReferenceId={resourceReferenceId} -&groupId={groupId}&searchId={searchSignal?.SearchId}&timeOfSearch={searchSignal?.TimeOfSearch}&userQuery={HttpUtility.UrlEncode(searchSignal?.UserQuery)}&query={searchSignalQueryEncoded}"; +&groupId={groupId}&searchId={searchSignal?.SearchId}&timeOfSearch={searchSignal?.TimeOfSearch}&userQuery={HttpUtility.UrlEncode(searchSignal.UserQuery)}&query={searchSignalQueryEncoded}"; } bool showCatalogueFieldsInResources = ViewBag.ShowCatalogueFieldsInResources == null || ViewBag.ShowCatalogueFieldsInResources == true;