|
// filtering with a collection of ids |
|
var ids = new string[] { item.Id, item2.Id }; |
|
var result = await restClient.GetItems<NewsDto>(x => ids.Contains(x.Id)); |
|
|
|
// filtering by classifications(tags, categories, custom classifications) |
|
var result = await restClient.GetItems<NewsDto>(x => x.Tags.Contains(tag.Id)); |
|
|
|
// filtering by multiple classifications(tags, categories, custom classifications) |
|
var result = await restClient.GetItems<NewsDto>(x => x.Tags.Contains(tag.Id) || x.Tags.Contains(tag2.Id)); |
|
|
|
// filtering classifications by inverting the filter |
|
var result = await restClient.GetItems<NewsDto>(x => !x.Tags.Contains(tag.Id)); |
|
|
|
// string filter with StartsWtih |
|
var result = await restClient.GetItems<NewsDto>(x => x.Title.StartsWith(subString)); |
|
|
|
// string filter with EndsWith |
|
var result = await restClient.GetItems<NewsDto>(x => x.Title.EndsWith(subString)); |
|
|
|
// string filter with Equals |
|
var result = await restClient.GetItems<NewsDto>(x => x.Title.Equals(otherString)); |
|
|
|
// string filter with Contains |
|
var result = await restClient.GetItems<NewsDto>(x => x.Title.Contains(subString)); |
|
|
|
// negated string filters |
|
var result = await restClient.GetItems<NewsDto>(x => !x.Title.StartsWith(subString)); |
|
|
|
// filtering by basic properties with equals |
|
var result = await restClient.GetItems<NewsDto>(x => x.Id == item.Id); |
|
|
|
// filtering by basic properties with not equals |
|
var result = await restClient.GetItems<NewsDto>(x => x.Id != item.Id); |
|
|
|
// filtering by greater than operator |
|
var referenceDate = DateTime.UtcNow; |
|
var result = await restClient.GetItems<NewsDto>(x => x.PublicationDate > referenceDate.AddHours(-24)); |
|
|
|
// filtering by less than operator |
|
var referenceDate = DateTime.UtcNow; |
|
var result = await restClient.GetItems<NewsDto>(x => x.PublicationDate < referenceDate.AddHours(-24)); |
|
|
|
// filtering by dynamic fields |
|
var result = await restClient.GetItems<NewsDto>(x => x.GetValue<string>("Title") == "searchTitle"); |
|
|
|
// filtering by more complex expressions |
|
var result = await restClient.GetItems<NewsDto>(x => ((x.Id == item.Id) || (x.Id == item2.Id))); |
|
|
|
// filtering by related items |
|
var result = await restClient.GetItems<NewsDtoInQuantum>(x => x.Thumbnail.Any(y => y.Title.StartsWith("Sample title", StringComparison.Ordinal) && y.Title.EndsWith(endsWithFilter, StringComparison.Ordinal))); |
|
|
|
// filtering by a dynamic collection of taxons |
|
var tags = new[] { Guid.NewGuid(), Guid.NewGuid()}; |
|
var allFilters = tags.Select(tag => |
|
{ |
|
var filter = new FilterClause() |
|
{ |
|
FieldName = nameof(NewsDto.Tags), |
|
FieldValue = tag.Id, |
|
Operator = FilterClause.Operators.ContainsOr, |
|
}; |
|
|
|
return (object)filter; |
|
}).ToList(); |
|
|
|
var combinedFilter = new CombinedFilter() |
|
{ |
|
Operator = CombinedFilter.LogicalOperators.Or, |
|
ChildFilters = allFilters, |
|
}; |
|
|
|
var args = new GetAllArgs() { Count = true, Take = pageSize, Filter = combinedFilter, Fields = new List<string>() { "Id", "Title" } }; |
|
var newsItems = await _restClient.GetItems<NewsDto>(args); |
|
|