예제 #1
0
 internal void AddCriteria(tridion.Criteria crit)
 {
     if (Criteria == null)
     {
         Criteria = new List <tridion.Criteria>();
     }
     Criteria.Add(crit);
 }
예제 #2
0
        private tridion.Criteria ProcessCriteriaRecursive(LinqTridionAndOr crit)
        {
            if (crit.Criteria != null && crit.Criteria.Count > 0)
            {
                if (crit is LinqTridionAnd)
                {
                    return(new tridion.AndCriteria(crit.Criteria.ToArray()));
                }
                else if (crit is LinqTridionOr)
                {
                    return(new tridion.OrCriteria(crit.Criteria.ToArray()));
                }
            }
            else if (crit.ChildCriteria != null && crit.ChildCriteria.Count > 0)
            {
                List <tridion.Criteria> criteria = null;
                foreach (var item in crit.ChildCriteria)
                {
                    tridion.Criteria processedCrit = ProcessCriteriaRecursive(item);
                    if (processedCrit != null)
                    {
                        criteria.Add(processedCrit);
                    }
                }

                if (crit is LinqTridionAnd)
                {
                    return(new tridion.AndCriteria(criteria.ToArray()));
                }
                else if (crit is LinqTridionOr)
                {
                    return(new tridion.OrCriteria(criteria.ToArray()));
                }
            }
            return(null);
        }