public async Task <IActionResult> OnGetAsync(string keyword) { if (!await _documentAppService.FullSearchEnabledAsync()) { return(RedirectToPage("Index")); } KeyWord = keyword; Project = await _projectAppService.GetAsync(ProjectName); var output = await _projectAppService.GetVersionsAsync(Project.ShortName); var versions = output.Items.ToList(); if (versions.Any() && string.Equals(Version, DocsAppConsts.Latest, StringComparison.OrdinalIgnoreCase)) { Version = versions.First().Name; } SearchOutputs = await _documentAppService.SearchAsync(new DocumentSearchInput { ProjectId = Project.Id, Context = KeyWord, LanguageCode = LanguageCode, Version = Version }); return(Page()); }
public virtual async Task <IActionResult> OnGetAsync(string keyword) { if (!await _documentAppService.FullSearchEnabledAsync()) { return(RedirectToPage("Index")); } KeyWord = keyword; Project = await _projectAppService.GetAsync(ProjectName); var output = await _projectAppService.GetVersionsAsync(Project.ShortName); var versions = output.Items.ToList(); if (versions.Any() && string.Equals(Version, DocsAppConsts.Latest, StringComparison.OrdinalIgnoreCase)) { if ((!Project.ExtraProperties.ContainsKey("GithubVersionProviderSource") || (GithubVersionProviderSource)(long)Project.ExtraProperties["GithubVersionProviderSource"] == GithubVersionProviderSource.Releases) && !string.IsNullOrEmpty(Project.LatestVersionBranchName)) { Version = Project.LatestVersionBranchName; } else { Version = (versions.FirstOrDefault(v => !SemanticVersionHelper.IsPreRelease(v.Name)) ?? versions.First()).Name; } } SearchOutputs = await _documentAppService.SearchAsync(new DocumentSearchInput { ProjectId = Project.Id, Context = KeyWord, LanguageCode = LanguageCode, Version = Version }); var highlightTag1 = Guid.NewGuid().ToString(); var highlightTag2 = Guid.NewGuid().ToString(); foreach (var searchOutput in SearchOutputs) { for (var i = 0; i < searchOutput.Highlight.Count; i++) { searchOutput.Highlight[i] = _encoder .Encode(searchOutput.Highlight[i].Replace("<highlight>", highlightTag1) .Replace("</highlight>", highlightTag2)) .Replace(highlightTag1, "<highlight>").Replace(highlightTag2, "</highlight>"); } } return(Page()); }
private async Task <IActionResult> SetPageAsync() { DocumentsUrlPrefix = _uiOptions.RoutePrefix; ShowProjectsCombobox = _uiOptions.ShowProjectsCombobox; FullSearchEnabled = await _documentAppService.FullSearchEnabledAsync(); try { await SetProjectAsync(); } catch (EntityNotFoundException e) { Logger.LogWarning(e.Message); ProjectFound = false; Response.StatusCode = 404; return(Page()); } if (ShowProjectsCombobox) { await SetProjectsAsync(); } await SetVersionAsync(); await SetLanguageList(); if (IsDefaultDocument()) { return(RedirectToDefaultDocument()); } if (!CheckLanguage()) { return(RedirectToDefaultLanguage()); } if (IsDocumentCultureDifferentThanCurrent()) { return(ReloadPageWithCulture()); } await SetDocumentAsync(); await SetNavigationAsync(); SetLanguageSelectListItems(); return(Page()); }