public Item[] GetImportItems(Item parent)
        {
            var items = new List <Item>();

            foreach (var queryLine in Query.Split(new[] { Environment.NewLine }, StringSplitOptions.None))
            {
                var query = queryLine;
                if (string.IsNullOrEmpty(query))
                {
                    return(new[] { parent });
                }
                if (query == "./")
                {
                    items.Add(parent);
                    continue;
                }
                if (query.StartsWith("./"))
                {
                    query = query.Replace("./", StringUtil.EnsurePostfix('/', parent.Paths.FullPath));
                }

                var cleanQuery = StringUtility.CleanXPath(query);
                Logger.Log("ComponentMapping.GetImportItems", string.Format("Running query: {0}", cleanQuery));
                items.AddRange(parent.Database.SelectItems(cleanQuery));
            }
            return(items.ToArray());
        }
Ejemplo n.º 2
0
        public void CleanXPathTest()
        {
            string s1 = "{00000000-0000-0000-0000-000000000000}";
            string s2 = "/a-b/";
            string s3 = "/#a-b#/";

            string r1 = StringUtility.CleanXPath(s1);
            string r2 = StringUtility.CleanXPath(s2);

            Assert.AreEqual(r1, s1);
            Assert.AreEqual(r2, s3);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// uses the sitecore database and xpath query to retrieve data
        /// </summary>
        /// <returns></returns>
        public override IEnumerable <object> GetImportData()
        {
            var items = new List <object>();

            foreach (var query in Query.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
            {
                var cleanQuery = StringUtility.CleanXPath(query);
                Logger.Log("SitecoreDataMap.GetImportData", string.Format("Running query: {0}", cleanQuery));
                items.AddRange(FromDB.SelectItems(cleanQuery));
            }

            return(items);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// uses the sitecore database and xpath query to retrieve data
 /// </summary>
 /// <returns></returns>
 public override IList <object> GetImportData()
 {
     using (new LanguageSwitcher(ImportToLanguageVersion))
     {
         if (String.IsNullOrEmpty(DataSourceString))
         {
             Logger.AddError("Error", "The DataSourceString was null or empty. Please provide a connectionstring for the Sitecore database.");
             return(null);
         }
         var database = Configuration.Factory.GetDatabase(DataSourceString);
         if (database == null)
         {
             Logger.AddError("Error", string.Format("The retrieved database from connectionstring: '{0}' was not found. Please verify the database connection", DataSourceString));
             return(null);
         }
         return(database.SelectItems(StringUtility.CleanXPath(Query)));
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// uses the sitecore database and xpath query to retrieve data
 /// </summary>
 /// <returns></returns>
 public override IEnumerable <object> GetImportData()
 {
     return(FromDB.SelectItems(StringUtility.CleanXPath(Query)));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// uses the sitecore database and xpath query to retrieve data
 /// </summary>
 /// <returns></returns>
 public override IEnumerable <object> GetImportData()
 {
     return(SitecoreDB.SelectItems(StringUtility.CleanXPath(this.Query)));
 }