@using Oqtane.Modules.SearchResults.Services @namespace Oqtane.Modules.SearchResults @inherits ModuleBase @inject ISearchResultsService SearchResultsService @inject IStringLocalizer Localizer
@Localizer["SearchPrefix"]
@if (_loading) {
} else { @if (_searchResults != null && _searchResults.Results != null) { if (_searchResults.Results.Any()) {

@context.Title

@context.Url

@((MarkupString)context.Snippet)

} else { } }
}
@code { private SearchSortDirections _searchSortDirection = SearchSortDirections.Descending; //default sort by private SearchSortFields _searchSortField = SearchSortFields.Relevance; private string _keywords; private bool _loading; private SearchResults _searchResults; private int _currentPage = 0; private int _pageSize = Constants.SearchDefaultPageSize; private int _displayPages = 7; protected override async Task OnInitializedAsync() { if (ModuleState.Settings.ContainsKey("PageSize")) { _pageSize = int.Parse(ModuleState.Settings["PageSize"]); } if (PageState.QueryString.ContainsKey("s")) { _keywords = PageState.QueryString["s"]; } if (PageState.QueryString.ContainsKey("p")) { _currentPage = Convert.ToInt32(PageState.QueryString["p"]); if (_currentPage < 1) { _currentPage = 1; } } if (!string.IsNullOrEmpty(_keywords)) { await PerformSearch(); } } private async Task KeywordsChanged(KeyboardEventArgs e) { if (e.Code == "Enter" || e.Code == "NumpadEnter") { if (!string.IsNullOrEmpty(_keywords)) { await Search(); } } } private async Task Search() { if (string.IsNullOrEmpty(_keywords)) { AddModuleMessage(Localizer["MissingKeywords"], MessageType.Warning); } else { ClearModuleMessage(); _currentPage = 0; await PerformSearch(); } } private async Task PerformSearch() { _loading = true; StateHasChanged(); var searchQuery = new SearchQuery { SiteId = PageState.Site.SiteId, Alias = PageState.Alias, User = PageState.User, Keywords = _keywords, SortDirection = _searchSortDirection, SortField = _searchSortField, PageIndex = 0, PageSize = int.MaxValue }; _searchResults = await SearchResultsService.SearchAsync(PageState.ModuleId, searchQuery); _loading = false; StateHasChanged(); } }