Files
Umbraco-CMS/src/Umbraco.Web/ITypedPublishedContentQuery.cs

84 lines
3.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Xml.XPath;
using Umbraco.Core.Models;
using Umbraco.Core.Xml;
namespace Umbraco.Web
{
/// <summary>
/// Query methods used for accessing strongly typed content in templates
/// </summary>
public interface ITypedPublishedContentQuery
{
/// <summary>
/// Gets a content item from the cache
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
IPublishedContent TypedContent(int id);
/// <summary>
/// Gets a content item from the cache
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
IPublishedContent TypedContent(Guid id);
IPublishedContent TypedContentSingleAtXPath(string xpath, params XPathVariable[] vars);
IEnumerable<IPublishedContent> TypedContent(IEnumerable<int> ids);
IEnumerable<IPublishedContent> TypedContent(IEnumerable<Guid> ids);
IEnumerable<IPublishedContent> TypedContentAtXPath(string xpath, params XPathVariable[] vars);
IEnumerable<IPublishedContent> TypedContentAtXPath(XPathExpression xpath, params XPathVariable[] vars);
IEnumerable<IPublishedContent> TypedContentAtRoot();
// TODO: we CANNOT implement TypedMedia by Guid in v7 without break-changing IPublishedCache, since we don't support XPath navigation of the media tree.
// surely there is a way we can support this without XPath, it's needed so we can query properly by UDI
IPublishedContent TypedMedia(int id);
//IPublishedContent TypedMedia(Guid id);
IEnumerable<IPublishedContent> TypedMedia(IEnumerable<int> ids);
//IEnumerable<IPublishedContent> TypedMedia(IEnumerable<Guid> ids);
IEnumerable<IPublishedContent> TypedMediaAtRoot();
/// <summary>
/// Searches content
/// </summary>
/// <param name="term"></param>
/// <param name="useWildCards"></param>
/// <param name="searchProvider"></param>
/// <returns></returns>
IEnumerable<IPublishedContent> TypedSearch(string term, bool useWildCards = true, string searchProvider = null);
/// <summary>
/// Searches content
/// </summary>
/// <param name="skip"></param>
/// <param name="take"></param>
/// <param name="totalRecords"></param>
/// <param name="term"></param>
/// <param name="useWildCards"></param>
/// <param name="searchProvider"></param>
/// <returns></returns>
IEnumerable<IPublishedContent> TypedSearch(int skip, int take, out int totalRecords, string term, bool useWildCards = true, string searchProvider = null);
/// <summary>
/// Searhes content
/// </summary>
/// <param name="criteria"></param>
/// <param name="searchProvider"></param>
/// <returns></returns>
IEnumerable<IPublishedContent> TypedSearch(Examine.SearchCriteria.ISearchCriteria criteria, Examine.Providers.BaseSearchProvider searchProvider = null);
/// <summary>
/// Searhes content
/// </summary>
/// <param name="totalrecords"></param>
/// <param name="criteria"></param>
/// <param name="searchProvider"></param>
/// <param name="skip"></param>
/// <param name="take"></param>
/// <returns></returns>
IEnumerable<IPublishedContent> TypedSearch(int skip, int take, out int totalrecords, Examine.SearchCriteria.ISearchCriteria criteria, Examine.Providers.BaseSearchProvider searchProvider = null);
}
}