本文整理汇总了C#中Criteria.SetValue方法的典型用法代码示例。如果您正苦于以下问题:C# Criteria.SetValue方法的具体用法?C# Criteria.SetValue怎么用?C# Criteria.SetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Criteria
的用法示例。
在下文中一共展示了Criteria.SetValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ToTridionQuery
public Tridion.ContentDelivery.DynamicContent.Query.Query ToTridionQuery()
{
string[] basedOnSchemas = QuerySchemas;
DateTime lastPublishedDate = LastPublishedDate;
IList<MetaQueryItem> metaQueryItems = MetaQueryValues;
QueryLogic metaQueryLogic = MetaQueryLogic;
int maxmimumComponents = MaximumComponents;
Query q = null;
//PublicationCriteria publicationAndLastPublishedDateCriteria = new PublicationCriteria(PublicationId);
PublicationCriteria publicationAndLastPublishedDateCriteria = new PublicationCriteria(PublicationId);
//format DateTime // 00:00:00.000
ItemLastPublishedDateCriteria dateLastPublished = new ItemLastPublishedDateCriteria(lastPublishedDate.ToString("yyyy-MM-dd HH:mm:ss.fff"), Criteria.GreaterThanOrEqual);
//publicationAndLastPublishedDateCriteria.AddCriteria(dateLastPublished);
Criteria basedOnSchemaAndInPublication;
if (basedOnSchemas.Length > 0)
{
Criteria[] schemaCriterias = new Criteria[basedOnSchemas.Length];
int i = 0;
foreach (var schema in basedOnSchemas)
{
TcmUri schemaUri = new TcmUri(schema);
schemaCriterias.SetValue(new ItemSchemaCriteria(schemaUri.ItemId), i);
i++;
}
Criteria basedOnSchema = CriteriaFactory.Or(schemaCriterias);
basedOnSchemaAndInPublication = CriteriaFactory.And(publicationAndLastPublishedDateCriteria, basedOnSchema);
}
else
{
basedOnSchemaAndInPublication = publicationAndLastPublishedDateCriteria;
}
// Add filtering for meta data
Criteria schemasAndMetaData;
if (metaQueryItems.Count > 0)
{
Criteria metaQuery;
Criteria[] metaCriterias = new Criteria[metaQueryItems.Count];
int metaCount = 0;
foreach (MetaQueryItem queryItem in metaQueryItems)
{
CustomMetaKeyCriteria metaField = new CustomMetaKeyCriteria(queryItem.MetaField);
CustomMetaValueCriteria metaCriteria;
FieldOperator metaOperator = typeof(Criteria).GetField(queryItem.MetaOperator.ToString()).GetValue(null) as FieldOperator;
switch (queryItem.MetaValue.GetType().Name)
{
case "DateTime":
DateTime tempDate = (DateTime)queryItem.MetaValue;
metaCriteria = new CustomMetaValueCriteria(metaField, tempDate.ToString("yyyy-MM-dd HH:mm:ss.fff"), "yyyy-MM-dd HH:mm:ss.SSS", metaOperator);
break;
case "Float":
metaCriteria = new CustomMetaValueCriteria(metaField, (float)queryItem.MetaValue, metaOperator);
break;
case "String":
metaCriteria = new CustomMetaValueCriteria(metaField, queryItem.MetaValue as string, metaOperator);
break;
default:
throw new System.Exception("Unexpected query item data type; " + queryItem.MetaValue.GetType().Name);
}
metaCriterias.SetValue(metaCriteria, metaCount);
metaCount++;
}
if (MetaQueryLogic == QueryLogic.AllCriteriaMatch)
{
metaQuery = CriteriaFactory.And(metaCriterias);
}
else
{
metaQuery = CriteriaFactory.Or(metaCriterias);
}
schemasAndMetaData = CriteriaFactory.And(basedOnSchemaAndInPublication, metaQuery);
}
else
{
schemasAndMetaData = basedOnSchemaAndInPublication;
}
Criteria allConditions;
if (KeywordValues.Count > 0)
{
Criteria[] keywordCriterias = new Criteria[KeywordValues.Count];
int keywordCount = 0;
foreach (KeywordItem keyCriteria in KeywordValues)
{
TaxonomyKeywordCriteria keywordField = new TaxonomyKeywordCriteria(keyCriteria.CategoryUri, keyCriteria.KeywordUri, false);
keywordCriterias.SetValue(keywordField, keywordCount);
keywordCount++;
}
Criteria keyQuery;
if (KeywordQueryLogic == QueryLogic.AllCriteriaMatch)
{
keyQuery = CriteriaFactory.And(keywordCriterias);
}
//.........这里部分代码省略.........