Merge pull request #4338 from sbwalker/dev
use List instead of IList, remove "List" from method names. remove unnecessary using statements
This commit is contained in:
commit
af7ca5b897
|
@ -36,7 +36,7 @@ namespace Oqtane.Managers.Search
|
||||||
|
|
||||||
public override int Priority => ModuleSearchIndexManagerPriority;
|
public override int Priority => ModuleSearchIndexManagerPriority;
|
||||||
|
|
||||||
public override int IndexContent(int siteId, DateTime? startTime, Action<IList<SearchContent>> processSearchContent, Action<string> handleError)
|
public override int IndexContent(int siteId, DateTime? startTime, Action<List<SearchContent>> processSearchContent, Action<string> handleError)
|
||||||
{
|
{
|
||||||
var pageModules = _pageModuleRepostory.GetPageModules(siteId).DistinctBy(i => i.ModuleId);
|
var pageModules = _pageModuleRepostory.GetPageModules(siteId).DistinctBy(i => i.ModuleId);
|
||||||
var searchContentList = new List<SearchContent>();
|
var searchContentList = new List<SearchContent>();
|
||||||
|
|
|
@ -1,11 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
||||||
using System.Reflection.Metadata;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Oqtane.Interfaces;
|
|
||||||
using Oqtane.Models;
|
using Oqtane.Models;
|
||||||
using Oqtane.Repository;
|
using Oqtane.Repository;
|
||||||
using Oqtane.Shared;
|
using Oqtane.Shared;
|
||||||
|
@ -35,7 +31,7 @@ namespace Oqtane.Managers.Search
|
||||||
|
|
||||||
public override int Priority => PageSearchIndexManagerPriority;
|
public override int Priority => PageSearchIndexManagerPriority;
|
||||||
|
|
||||||
public override int IndexContent(int siteId, DateTime? startTime, Action<IList<SearchContent>> processSearchContent, Action<string> handleError)
|
public override int IndexContent(int siteId, DateTime? startTime, Action<List<SearchContent>> processSearchContent, Action<string> handleError)
|
||||||
{
|
{
|
||||||
var startTimeValue = startTime.GetValueOrDefault(DateTime.MinValue);
|
var startTimeValue = startTime.GetValueOrDefault(DateTime.MinValue);
|
||||||
var pages = _pageRepository.GetPages(siteId).Where(i => i.ModifiedOn >= startTimeValue);
|
var pages = _pageRepository.GetPages(siteId).Where(i => i.ModifiedOn >= startTimeValue);
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace Oqtane.Managers.Search
|
||||||
|
|
||||||
public abstract string Name { get; }
|
public abstract string Name { get; }
|
||||||
|
|
||||||
public abstract int IndexContent(int siteId, DateTime? startDate, Action<IList<SearchContent>> processSearchContent, Action<string> handleError);
|
public abstract int IndexContent(int siteId, DateTime? startDate, Action<List<SearchContent>> processSearchContent, Action<string> handleError);
|
||||||
|
|
||||||
public virtual bool IsIndexEnabled(int siteId)
|
public virtual bool IsIndexEnabled(int siteId)
|
||||||
{
|
{
|
||||||
|
|
|
@ -147,7 +147,7 @@ namespace Oqtane.Providers
|
||||||
private float CalculateScore(SearchContent searchContent, SearchQuery searchQuery)
|
private float CalculateScore(SearchContent searchContent, SearchQuery searchQuery)
|
||||||
{
|
{
|
||||||
var score = 0f;
|
var score = 0f;
|
||||||
foreach (var keyword in SearchUtils.GetKeywordsList(searchQuery.Keywords))
|
foreach (var keyword in SearchUtils.GetKeywords(searchQuery.Keywords))
|
||||||
{
|
{
|
||||||
score += searchContent.SearchContentWords.Where(i => i.SearchWord.Word.StartsWith(keyword)).Sum(i => i.Count);
|
score += searchContent.SearchContentWords.Where(i => i.SearchWord.Word.StartsWith(keyword)).Sum(i => i.Count);
|
||||||
}
|
}
|
||||||
|
@ -159,7 +159,7 @@ namespace Oqtane.Providers
|
||||||
{
|
{
|
||||||
var content = $"{searchContent.Title} {searchContent.Description} {searchContent.Body}";
|
var content = $"{searchContent.Title} {searchContent.Description} {searchContent.Body}";
|
||||||
var snippet = string.Empty;
|
var snippet = string.Empty;
|
||||||
foreach (var keyword in SearchUtils.GetKeywordsList(searchQuery.Keywords))
|
foreach (var keyword in SearchUtils.GetKeywords(searchQuery.Keywords))
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(keyword) && content.Contains(keyword, StringComparison.OrdinalIgnoreCase))
|
if (!string.IsNullOrWhiteSpace(keyword) && content.Contains(keyword, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
|
@ -191,7 +191,7 @@ namespace Oqtane.Providers
|
||||||
snippet = content.Substring(0, searchQuery.BodySnippetLength);
|
snippet = content.Substring(0, searchQuery.BodySnippetLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var keyword in SearchUtils.GetKeywordsList(searchQuery.Keywords))
|
foreach (var keyword in SearchUtils.GetKeywords(searchQuery.Keywords))
|
||||||
{
|
{
|
||||||
snippet = Regex.Replace(snippet, $"({keyword})", $"<b>$1</b>", RegexOptions.IgnoreCase);
|
snippet = Regex.Replace(snippet, $"({keyword})", $"<b>$1</b>", RegexOptions.IgnoreCase);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace Oqtane.Repository
|
||||||
public async Task<IEnumerable<SearchContent>> GetSearchContentsAsync(SearchQuery searchQuery)
|
public async Task<IEnumerable<SearchContent>> GetSearchContentsAsync(SearchQuery searchQuery)
|
||||||
{
|
{
|
||||||
using var db = _dbContextFactory.CreateDbContext();
|
using var db = _dbContextFactory.CreateDbContext();
|
||||||
var searchContentList = db.SearchContent.AsNoTracking()
|
var searchContents = db.SearchContent.AsNoTracking()
|
||||||
.Include(i => i.SearchContentProperties)
|
.Include(i => i.SearchContentProperties)
|
||||||
.Include(i => i.SearchContentWords)
|
.Include(i => i.SearchContentWords)
|
||||||
.ThenInclude(w => w.SearchWord)
|
.ThenInclude(w => w.SearchWord)
|
||||||
|
@ -28,33 +28,33 @@ namespace Oqtane.Repository
|
||||||
|
|
||||||
if (searchQuery.EntityNames != null && searchQuery.EntityNames.Any())
|
if (searchQuery.EntityNames != null && searchQuery.EntityNames.Any())
|
||||||
{
|
{
|
||||||
searchContentList = searchContentList.Where(i => searchQuery.EntityNames.Contains(i.EntityName));
|
searchContents = searchContents.Where(i => searchQuery.EntityNames.Contains(i.EntityName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchQuery.BeginModifiedTimeUtc != DateTime.MinValue)
|
if (searchQuery.BeginModifiedTimeUtc != DateTime.MinValue)
|
||||||
{
|
{
|
||||||
searchContentList = searchContentList.Where(i => i.ModifiedTime >= searchQuery.BeginModifiedTimeUtc);
|
searchContents = searchContents.Where(i => i.ModifiedTime >= searchQuery.BeginModifiedTimeUtc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchQuery.EndModifiedTimeUtc != DateTime.MinValue)
|
if (searchQuery.EndModifiedTimeUtc != DateTime.MinValue)
|
||||||
{
|
{
|
||||||
searchContentList = searchContentList.Where(i => i.ModifiedTime <= searchQuery.EndModifiedTimeUtc);
|
searchContents = searchContents.Where(i => i.ModifiedTime <= searchQuery.EndModifiedTimeUtc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchQuery.Properties != null && searchQuery.Properties.Any())
|
if (searchQuery.Properties != null && searchQuery.Properties.Any())
|
||||||
{
|
{
|
||||||
foreach (var property in searchQuery.Properties)
|
foreach (var property in searchQuery.Properties)
|
||||||
{
|
{
|
||||||
searchContentList = searchContentList.Where(i => i.SearchContentProperties.Any(p => p.Name == property.Key && p.Value == property.Value));
|
searchContents = searchContents.Where(i => i.SearchContentProperties.Any(p => p.Name == property.Key && p.Value == property.Value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var filteredContentList = new List<SearchContent>();
|
var filteredContentList = new List<SearchContent>();
|
||||||
if (!string.IsNullOrEmpty(searchQuery.Keywords))
|
if (!string.IsNullOrEmpty(searchQuery.Keywords))
|
||||||
{
|
{
|
||||||
foreach (var keyword in SearchUtils.GetKeywordsList(searchQuery.Keywords))
|
foreach (var keyword in SearchUtils.GetKeywords(searchQuery.Keywords))
|
||||||
{
|
{
|
||||||
filteredContentList.AddRange(await searchContentList.Where(i => i.SearchContentWords.Any(w => w.SearchWord.Word.StartsWith(keyword))).ToListAsync());
|
filteredContentList.AddRange(await searchContents.Where(i => i.SearchContentWords.Any(w => w.SearchWord.Word.StartsWith(keyword))).ToListAsync());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using HtmlAgilityPack;
|
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
@ -143,7 +141,7 @@ namespace Oqtane.Services
|
||||||
_tenantManager.SetAlias(alias);
|
_tenantManager.SetAlias(alias);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IList<ISearchIndexManager> GetSearchIndexManagers(Action<ISearchIndexManager> initManager)
|
private List<ISearchIndexManager> GetSearchIndexManagers(Action<ISearchIndexManager> initManager)
|
||||||
{
|
{
|
||||||
var managers = new List<ISearchIndexManager>();
|
var managers = new List<ISearchIndexManager>();
|
||||||
var managerTypes = AppDomain.CurrentDomain.GetAssemblies()
|
var managerTypes = AppDomain.CurrentDomain.GetAssemblies()
|
||||||
|
@ -160,7 +158,7 @@ namespace Oqtane.Services
|
||||||
return managers.OrderBy(i => i.Priority).ToList();
|
return managers.OrderBy(i => i.Priority).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private IList<ISearchResultManager> GetSearchResultManagers()
|
private List<ISearchResultManager> GetSearchResultManagers()
|
||||||
{
|
{
|
||||||
var managers = new List<ISearchResultManager>();
|
var managers = new List<ISearchResultManager>();
|
||||||
var managerTypes = AppDomain.CurrentDomain.GetAssemblies()
|
var managerTypes = AppDomain.CurrentDomain.GetAssemblies()
|
||||||
|
@ -176,7 +174,7 @@ namespace Oqtane.Services
|
||||||
return managers.ToList();
|
return managers.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveSearchContent(IList<SearchContent> searchContentList)
|
private void SaveSearchContent(List<SearchContent> searchContentList)
|
||||||
{
|
{
|
||||||
if(searchContentList.Any())
|
if(searchContentList.Any())
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Web;
|
|
||||||
using Oqtane.Models;
|
using Oqtane.Models;
|
||||||
|
|
||||||
namespace Oqtane.Services
|
namespace Oqtane.Services
|
||||||
|
@ -15,6 +12,6 @@ namespace Oqtane.Services
|
||||||
|
|
||||||
bool IsIndexEnabled(int siteId);
|
bool IsIndexEnabled(int siteId);
|
||||||
|
|
||||||
int IndexContent(int siteId, DateTime? startTime, Action<IList<SearchContent>> processSearchContent, Action<string> handleError);
|
int IndexContent(int siteId, DateTime? startTime, Action<List<SearchContent>> processSearchContent, Action<string> handleError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,9 +31,9 @@ namespace Oqtane.Models
|
||||||
|
|
||||||
public string AdditionalContent { get; set; }
|
public string AdditionalContent { get; set; }
|
||||||
|
|
||||||
public IList<SearchContentProperty> SearchContentProperties { get; set; }
|
public List<SearchContentProperty> SearchContentProperties { get; set; }
|
||||||
|
|
||||||
public IList<SearchContentWord> SearchContentWords { get; set; }
|
public List<SearchContentWord> SearchContentWords { get; set; }
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace Oqtane.Models
|
||||||
|
|
||||||
public string Keywords { get; set; }
|
public string Keywords { get; set; }
|
||||||
|
|
||||||
public IList<string> EntityNames { get; set; } = new List<string>();
|
public List<string> EntityNames { get; set; } = new List<string>();
|
||||||
|
|
||||||
public DateTime BeginModifiedTimeUtc { get; set; }
|
public DateTime BeginModifiedTimeUtc { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ namespace Oqtane.Models
|
||||||
{
|
{
|
||||||
public class SearchResults
|
public class SearchResults
|
||||||
{
|
{
|
||||||
public IList<SearchResult> Results { get; set; }
|
public List<SearchResult> Results { get; set; }
|
||||||
|
|
||||||
public int TotalResults { get; set; }
|
public int TotalResults { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,14 @@ namespace Oqtane.Shared
|
||||||
{
|
{
|
||||||
public sealed class SearchUtils
|
public sealed class SearchUtils
|
||||||
{
|
{
|
||||||
private static readonly IList<string> _systemPages;
|
private static readonly List<string> _systemPages;
|
||||||
|
|
||||||
static SearchUtils()
|
static SearchUtils()
|
||||||
{
|
{
|
||||||
_systemPages = new List<string> { "login", "register", "profile", "404", "search" };
|
_systemPages = new List<string> { "login", "register", "profile", "404", "search" };
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IList<string> GetKeywordsList(string keywords)
|
public static List<string> GetKeywords(string keywords)
|
||||||
{
|
{
|
||||||
var keywordsList = new List<string>();
|
var keywordsList = new List<string>();
|
||||||
if(!string.IsNullOrEmpty(keywords))
|
if(!string.IsNullOrEmpty(keywords))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user