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));
              }
        }
Example #2
0
        // 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());
        }