Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }