From 3a104ab7c82fd21729fa1c3ac9a16ececbbd9a19 Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Mon, 3 May 2021 19:06:50 +0430 Subject: [PATCH] exact phrase search --- RMuseum/Services/Implementation/GanjoorService.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/RMuseum/Services/Implementation/GanjoorService.cs b/RMuseum/Services/Implementation/GanjoorService.cs index 3aca73ce..0560b933 100644 --- a/RMuseum/Services/Implementation/GanjoorService.cs +++ b/RMuseum/Services/Implementation/GanjoorService.cs @@ -1782,10 +1782,17 @@ namespace RMuseum.Services.Implementation sql += $" {whereOrAnd} CatId IN (SELECT Id FROM GanjoorCategories WHERE PoetId = @PoetId ) "; whereOrAnd = " AND "; } - term = term.ApplyCorrectYeKe(); + term = term.Trim().ApplyCorrectYeKe(); + + if(string.IsNullOrEmpty(term)) + { + return new RServiceResult<(PaginationMetadata PagingMeta, GanjoorPoemCompleteViewModel[] Items)>((null, null), "خطای جستجوی عبارت خالی"); + } + + string[] words = term.IndexOf('"') == 0 && term.LastIndexOf('"') == (term.Length - 1) ? new string[] { term.Replace("\"", "") } : term.Split(' ', StringSplitOptions.RemoveEmptyEntries); int wIndex = 0; - foreach(string word in term.Split(' ', StringSplitOptions.RemoveEmptyEntries)) + foreach(string word in words) { wIndex++; parameters.Add(new SqlParameter($"Word{wIndex}", word));