London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!
AI OnAI Off
London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!
This document provides an overview of the Catalog Data Sources features.
All classes referred to here are available in the Mediachase.Commerce.Catalog.DataSources namespace.
Below is an overview of the Catalog Data Sources API structure.
Example: creating a CatalogIndexSearchDataSource
private CatalogIndexSearchDataSource CreateCatalogIndexSearchDataSource()
{
// Set up CatalogEntrySearchCriteria object.
SearchFilterHelper sfHelper = SearchFilterHelper.Current;
string keywords = Request.QueryString["search"];
SearchSort sortObject = CatalogEntrySearchCriteria.DefaultSortOrder
CatalogEntrySearchCriteria criteria = sfHelper.CreateSearchCriteria(keywords, sortObject);
// Set up CatalogIndexSearchDataSource object.
int startIndex = SomeListView.StartRowIndex;
int recordsToRetrieve = pageSize;
int count = 0;
CatalogEntryResponseGroup responseGroup = new CatalogEntryResponseGroup(CatalogEntryResponseGroup.ResponseGroup.CatalogEntryInfo);
bool cacheResults = true;
TimeSpan cacheTimeout = new TimeSpan(0, 0, 30);
//...
CatalogIndexSearchDataSource dataSource = null;
// No need to perform search if there are no catalogs specified.
if (criteria.CatalogNames.Count != 0)
{
Entries entries = sfHelper.SearchEntries(criteria, startIndex, recordsToRetrieve, out count, responseGroup, cacheResults, cacheTimeout);
dataSource = new CatalogIndexSearchDataSource();
dataSource.TotalResults = count;
dataSource.CatalogEntries = entries;
}
return dataSource;
}
Once the CatalogIndexSearchDataSource object is created, you can bind it to an ASP.NET server control that supports data binding, such as the ListView control. When this is done, you will have access to a collection of catalog entry results.
Example: accessing a catalog entry results collection
SomeListView.DataSource = CatalogIndexSearchDataSource
CatalogIndexSearchDataSource.CatalogEntries // propety of type Entries
CatalogIndexSearchDataSource.CatalogEntries.Entry // array of type Entry[]
Last updated: Oct 21, 2014