protected void ChangeSearchPhrase() { var parts = (SearchPhrase.Value ?? string.Empty).Split(':'); var database = parts.Length > 1 ? parts[0] : string.Empty; var phrase = parts.Length > 1 ? parts[1] : parts[0]; var recentHeader = new MenuHeader(); SearchResults.Controls.AddAt(0, recentHeader); Scripts.Controls.Clear(); try { if (string.IsNullOrEmpty(phrase)) { recentHeader.Header = Translate.Text(Texts.MruGallery_ChangeSearchPhrase_Most_Recently_opened_scripts_); foreach (Item item in ApplicationSettings.GetIseMruContainerItem().Children) { var messageString = item["Message"]; var message = Message.Parse(null, messageString); var db = message.Arguments["db"]; var id = message.Arguments["id"]; var scriptItem = Factory.GetDatabase(db).GetItem(id); if (scriptItem != null) { RenderRecent(scriptItem); } else { item.Delete(); } } } else if (database.Length > 0) { recentHeader.Header = Translate.Text(Texts.MruGallery_ChangeSearchPhrase_Scripts_matching____0___in___1____database, phrase, database); foreach (var index in ContentSearchManager.Indexes) { if (index.Name.StartsWith("sitecore_" + database) && index.Name.EndsWith("_index")) { SearchDatabase(index.Name, phrase); } } } else { recentHeader.Header = Translate.Text(Texts.MruGallery_ChangeSearchPhrase_Scripts_matching____0___in_all_databases, phrase); var masterIndex = "sitecore_" + ApplicationSettings.ScriptLibraryDb + "_index"; var scriptsFound = SearchDatabase(masterIndex, phrase); foreach (var index in ContentSearchManager.Indexes) { if (!string.Equals(masterIndex, index.Name, StringComparison.OrdinalIgnoreCase) && index.Name.StartsWith("sitecore_") && index.Name.EndsWith("_index")) { scriptsFound |= SearchDatabase(index.Name, phrase); } } if (!scriptsFound) { ShowScriptEnumerationProblem(); } } } catch (Exception ex) { PowerShellLog.Error("Error while Showing MRU entries", ex); ShowScriptEnumerationProblem(); } var writer = new HtmlTextWriter(new StringWriter()); SearchResults.RenderControl(writer); SheerResponse.SetOuterHtml(SearchResults.ID, writer.InnerWriter.ToString()); }
protected void ChangeSearchPhrase() { var parts = (SearchPhrase.Value ?? string.Empty).Split(':'); var database = parts.Length > 1 ? parts[0] : string.Empty; var phrase = parts.Length > 1 ? parts[1] : parts[0]; var recentHeader = new MenuHeader(); SearchResults.Controls.AddAt(0, recentHeader); Scripts.Controls.Clear(); if (string.IsNullOrEmpty(phrase)) { recentHeader.Header = "Most Recently opened scripts:"; foreach (Item item in ApplicationSettings.GetIseMruContainerItem().Children) { var messageString = item["Message"]; var message = Message.Parse(null, messageString); var db = message.Arguments["db"]; var id = message.Arguments["id"]; var scriptItem = Factory.GetDatabase(db).GetItem(id); if (scriptItem != null) { RenderRecent(scriptItem); } } } else if (database.Length > 0) { recentHeader.Header = "Scripts matching: '" + phrase + "' in '" + database + "*' database"; foreach (var index in ContentSearchManager.Indexes) { if (index.Name.StartsWith("sitecore_" + database) && index.Name.EndsWith("_index")) { SearchDatabase(index.Name, phrase); } } } else { recentHeader.Header = "Scripts matching: '" + phrase + "' in all databases"; var masterIndex = "sitecore_" + ApplicationSettings.ScriptLibraryDb + "_index"; var scriptsFound = SearchDatabase(masterIndex, phrase); foreach (var index in ContentSearchManager.Indexes) { if (!string.Equals(masterIndex, index.Name, StringComparison.OrdinalIgnoreCase) && index.Name.StartsWith("sitecore_") && index.Name.EndsWith("_index")) { scriptsFound |= SearchDatabase(index.Name, phrase); } } if (!scriptsFound) { Context.ClientPage.AddControl(Scripts, new Literal { Text = "<div class='noScript'><br/><br/>No scripts found... Do you need to re-index your databases?</div>" }); Scripts.CssStyle = "text-align: center;"; } } var writer = new HtmlTextWriter(new StringWriter()); SearchResults.RenderControl(writer); SheerResponse.SetOuterHtml(SearchResults.ID, writer.InnerWriter.ToString()); }