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

@context.Title

@((MarkupString)context.Snippet)

} else { } }
}
@code { public override string RenderMode => RenderModes.Static; private SearchSortDirections _searchSortDirection = SearchSortDirections.Descending; //default sort by private SearchSortFields _searchSortField = SearchSortFields.Relevance; private string _keywords; private bool _loading; private SearchResults _searchResults; [SupplyParameterFromForm(FormName = "SearchInputForm")] public string KeyWords { get => ""; set => _keywords = value; } protected override async Task OnInitializedAsync() { if (PageState.QueryString.ContainsKey("q")) { _keywords = WebUtility.UrlDecode(PageState.QueryString["q"]); } if (!string.IsNullOrEmpty(_keywords)) { await PerformSearch(); } } private void Search() { NavigationManager.NavigateTo(NavigateUrl(PageState.Page.Path, $"page=1&q={_keywords}")); } private async Task PerformSearch() { _loading = true; StateHasChanged(); var searchQuery = new SearchQuery { SiteId = PageState.Site.SiteId, Alias = PageState.Alias, Keywords = _keywords, SortDirection = _searchSortDirection, SortField = _searchSortField, PageIndex = 0, PageSize = int.MaxValue }; _searchResults = await SearchResultsService.GetSearchResultsAsync(searchQuery); _loading = false; StateHasChanged(); } }