using System.Xml.XPath;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.PublishedContent;
namespace Umbraco.Cms.Core.PublishedCache
{
// TODO: Kill this, why do we want this at all?
// See https://dev.azure.com/umbraco/D-Team%20Tracker/_workitems/edit/11487
public interface IPublishedMemberCache : IXPathNavigable
{
IPublishedContent GetByProviderKey(object key);
IPublishedContent GetById(int memberId);
IPublishedContent GetByUsername(string username);
IPublishedContent GetByEmail(string email);
IPublishedContent GetByMember(IMember member);
XPathNavigator CreateNavigator(bool preview);
// if the node does not exist, return null
XPathNavigator CreateNodeNavigator(int id, bool preview);
///
/// Gets a content type identified by its unique identifier.
///
/// The content type unique identifier.
/// The content type, or null.
IPublishedContentType GetContentType(int id);
///
/// Gets a content type identified by its alias.
///
/// The content type alias.
/// The content type, or null.
/// The alias is case-insensitive.
IPublishedContentType GetContentType(string alias);
}
}