/// <summary> /// Processes the condition. /// </summary> /// <param name="internalItem">The internal item.</param> /// <param name="condition">The condition.</param> /// <param name="metadataPropertyCollection">The MetadataPropertyCollection.</param> /// <returns><c>true</c> if item passes the condition; otherwise, <c>false</c></returns> private static bool ProcessCondition(InternalItem internalItem, Condition condition, MetadataPropertyCollection metadataPropertyCollection) { IndexCacheUtils.ProcessMetadataPropertyCondition(condition, metadataPropertyCollection); if (condition.IsTag) { byte[] tagValue; internalItem.TryGetTagValue(condition.FieldName, out tagValue); return(condition.Process(tagValue)); } return(condition.Process(internalItem.ItemId)); }
/// <summary> /// Sets the enter exit condition. /// </summary> private void SetEnterExitCondition() { if (IndexCondition != null) { IndexCondition.CreateConditions(PrimarySortInfo.FieldName, PrimarySortInfo.IsTag, PrimarySortInfo.SortOrderList[0], out enterCondition, out exitCondition); if (enterCondition != null) { IndexCacheUtils.ProcessMetadataPropertyCondition(enterCondition, MetadataPropertyCollection); } if (exitCondition != null) { IndexCacheUtils.ProcessMetadataPropertyCondition(exitCondition, MetadataPropertyCollection); } } }