Hi Sandeep,
We currently don't support filtering for custom classifications.
However here is the way you can do it:
This gets a list of news items with the tag "one" that were live:
private
TaxonomyPropertyDescriptor GetPropertyDescriptor(Type itemType, ITaxon taxon)
{
return
TaxonomyManager.GetPropertyDescriptor(itemType, taxon);
}
private
IEnumerable GetItems(ITaxon taxon, ContentDataProviderBase contentProvider, Type itemType)
{
TaxonomyPropertyDescriptor prop = GetPropertyDescriptor(itemType, taxon);
int
? totalCount = 0;
var items = contentProvider.GetItemsByTaxon(taxon.Id, prop.MetaField.IsSingleTaxon, prop.Name, itemType,
string
.Empty,
string
.Empty, 0, 100,
ref
totalCount);
return
items;
}
public
void
Button1_Click(
object
sender, EventArgs e)
{
List<NewsItem> niL =
new
List<NewsItem>();
TaxonomyManager taxManager = TaxonomyManager.GetManager();
//Get the tag called "One"
var taxon = taxManager.GetTaxa<FlatTaxon>().Where(t => t.Name ==
"One"
).Single();
//I want the news items
string
itemTypeName =
"Telerik.Sitefinity.News.Model.NewsItem"
;
Type itemType = TypeResolutionService.ResolveType(itemTypeName);
var manager = ManagerBase.GetMappedManager(itemType,
""
);
ContentDataProviderBase contentProvider = manager.Provider
as
ContentDataProviderBase;
var v = GetItems(taxon, contentProvider, itemType);
//Load into strongly typed list
foreach
(NewsItem n
in
v)
{
niL.Add(n);
}
Response.Write(niL.Where(a => a.Status == ContentLifecycleStatus.Live).First());
}
Kind regards,
the Telerik team