protected void Run() { if (this.MaxVersions < 1) { this.MaxVersions = 10; } if (String.IsNullOrEmpty(this.Database)) { this.Database = "master"; } Sitecore.Data.Database db = Sitecore.Configuration.Factory.GetDatabase(this.Database); Sitecore.Diagnostics.Assert.IsNotNull(db, this.Database); if (String.IsNullOrEmpty(this.RootItem)) { this.RootItem = db.GetRootItem().Paths.FullPath; } foreach (Sitecore.Globalization.Language language in db.Languages) { this.Iterate(db.GetItem(this.RootItem, language)); } }
// retrieve IDs of items to process protected SC.Data.ID[] GetItemIDs(SC.Data.Database db) { SC.Diagnostics.Assert.ArgumentNotNull(db, "db"); SC.Data.Query.Query query = new SC.Data.Query.Query( this.GetQuery()) { // override the Query.MaxItems setting in the Web.config file Max = int.MaxValue }; SC.Data.Items.Item root = db.GetRootItem(); SC.Diagnostics.Assert.IsNotNull(root, "root"); // result of invoking the query object queryResult = query.Execute(root); SC.Diagnostics.Assert.IsNotNull(queryResult, "queryResult"); // list for method to return List <SC.Data.ID> methodResults = new List <SC.Data.ID>(); SC.Data.Query.QueryContext queryContext = queryResult as SC.Data.Query.QueryContext; // if the query returned only one item if (queryContext != null) { methodResults.Add(queryContext.ID); } else { // the query potentially returned multiple results SC.Data.Query.QueryContext[] queryContexts = queryResult as SC.Data.Query.QueryContext[]; SC.Diagnostics.Assert.IsNotNull(queryContexts, "queryContexts"); for (int i = 0; i < queryContexts.Length; i++) { methodResults.Add(queryContexts[i].ID); } } return(methodResults.ToArray()); }