Sunday, September 17, 2017

OR predicate within AND predicate

if (Sitecore.Context.Item.ID.ToString() == Library.Constants.ItemIds.BF2_FOR_EDUCATAORS_ITEM_ID)
            {
                var educatorTypesPredicate = PredicateBuilder.False<GenericArticle>();

                Item forEducatorsItem = Sitecore.Context.Database.GetItem(Library.Constants.SourceFolders.FOR_EDUCATORS);
                List<Item> forEducatorItems = new List<Item>();
                forEducatorItems.Add(forEducatorsItem);
                forEducatorItems.AddRange(forEducatorsItem.GetChildren());

                foreach (Item item in forEducatorItems)
                {
                    Guid guid = Guid.Parse(item.ID.ToString());
                    educatorTypesPredicate = educatorTypesPredicate.Or(p => p.ContentType.Contains(guid));
                }
                query = query.And(educatorTypesPredicate);
            }

No comments:

Post a Comment