本文整理汇总了C#中PageReference.CompareToIgnoreWorkID方法的典型用法代码示例。如果您正苦于以下问题:C# PageReference.CompareToIgnoreWorkID方法的具体用法?C# PageReference.CompareToIgnoreWorkID怎么用?C# PageReference.CompareToIgnoreWorkID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PageReference
的用法示例。
在下文中一共展示了PageReference.CompareToIgnoreWorkID方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RenderMainNavigation
public static void RenderMainNavigation(this HtmlHelper html, PageReference rootLink = null,
ContentReference contentLink = null,
bool includeRoot = true, IContentLoader contentLoader = null)
{
contentLink = contentLink ?? html.ViewContext.RequestContext.GetContentLink();
rootLink = rootLink ?? ContentReference.StartPage;
var writer = html.ViewContext.Writer;
// top level
writer.WriteLine("<nav class=\"navbar navbar-inverse\">");
writer.WriteLine("<ul class=\"nav navbar-nav\">");
if (includeRoot)
{
if (rootLink.CompareToIgnoreWorkID(contentLink))
{
writer.WriteLine("<li class=\"active\">");
}
else
{
writer.WriteLine("<li>");
}
writer.WriteLine(html.PageLink(rootLink).ToHtmlString());
writer.WriteLine("</li>");
}
// hämta ut alla barn från start
contentLoader = ServiceLocator.Current.GetInstance<IContentLoader>();
var topLevelPages = contentLoader.GetChildren<PageData>(rootLink);
topLevelPages = FilterForVisitor.Filter(topLevelPages).OfType<PageData>().Where(x => x.VisibleInMenu);
var currentBranch = contentLoader.GetAncestors(contentLink).Select(x => x.ContentLink).ToList();
currentBranch.Add(contentLink);
//skriv ut dom
foreach (var topLevelPage in topLevelPages)
{
if (currentBranch.Any(x => x.CompareToIgnoreWorkID(topLevelPage.ContentLink)))
{
writer.WriteLine("<li class=\"active\">");
}
else
{
writer.WriteLine("<li>");
}
writer.WriteLine(html.PageLink(topLevelPage).ToHtmlString());
writer.WriteLine("</li>");
}
//Close top level
writer.WriteLine("</ul");
writer.WriteLine("</nav>");
}
示例2: GetChildrenReferences
/// <summary>
/// <see cref="PageProviderBase.GetChildrenReferences(EPiServer.Core.PageReference,string)"/>
/// </summary>
/// <param name="pageLink">Page Link</param>
/// <param name="languageID">Language Id</param>
/// <returns>Page reference collection</returns>
protected override PageReferenceCollection GetChildrenReferences(PageReference pageLink, string languageID)
{
if (pageLink == null || PageReference.IsNullOrEmpty(pageLink))
{
return new PageReferenceCollection();
}
if (pageLink.CompareToIgnoreWorkID(EntryPoint))
{
return new PageReferenceCollection(RootChildren.Select(key => new PageReference((MappedPPDB.Instance.LoadMapping(Name, key).Id), this.ProviderKey)).ToArray());
}
var children = GetChildren(MappedPPDB.Instance.LoadMapping(Name, pageLink.ID).Key);
return children == null ? new PageReferenceCollection() : new PageReferenceCollection(children.Select(key => new PageReference(MappedPPDB.Instance.LoadMapping(Name, key).Id, this.ProviderKey)).ToArray());
}
示例3: ClonedContentProvider
public ClonedContentProvider(PageReference cloneRoot, PageReference entryRoot, CategoryList categoryFilter)
{
if (cloneRoot.CompareToIgnoreWorkID(entryRoot))
{
throw new NotSupportedException("Entry root and clone root cannot be set to the same content reference");
}
if (DataFactory.Instance.GetChildren<IContent>(entryRoot).Any())
{
throw new NotSupportedException("Unable to create ClonedContentProvider, the EntryRoot property must point to leaf content (without children)");
}
CloneRoot = cloneRoot;
EntryRoot = entryRoot;
Category = categoryFilter;
// Set the entry point parameter
Parameters.Add(Configuration.PageProvider.EntryPointString, EntryRoot.ID.ToString(CultureInfo.InvariantCulture));
// Configure content store used to retrieve pages
ContentStore = ServiceLocator.Current.GetInstance<ContentStore>();
}
示例4: ConvertPageReference
/// <summary>
/// Convert page reference to key
/// </summary>
/// <param name="pageReference">Page reference</param>
/// <returns>Key</returns>
protected string ConvertPageReference(PageReference pageReference)
{
if (pageReference == null || PageReference.IsNullOrEmpty(pageReference))
{
return null;
}
return pageReference.CompareToIgnoreWorkID(EntryPoint) ? null : GetMapping(pageReference.ID).Key;
}
示例5: FindPagesWithCriteria
public PageDataCollection FindPagesWithCriteria(PageReference pageLink, PropertyCriteriaCollection criterias, string languageBranch, ILanguageSelector selector)
{
// Any search beneath the entry root should in fact be performed under the clone root as that's where the original content resides
if (pageLink.CompareToIgnoreWorkID(EntryRoot))
{
pageLink = CloneRoot;
}
else if (!string.IsNullOrWhiteSpace(pageLink.ProviderName)) // Any search beneath a cloned page should in fact be performed under the original page, so we use a page link without any provider information
{
pageLink = new PageReference(pageLink.ID);
}
var pages = DataFactory.Instance.FindPagesWithCriteria(pageLink, criterias, languageBranch, selector);
// Return cloned search result set
return new PageDataCollection(pages.Select(ClonePage));
}
示例6: RenderMainNavigation
public static void RenderMainNavigation(
this HtmlHelper html,
PageReference rootLink = null,
ContentReference contentLink = null,
bool includeRoot = true,
IContentLoader contentLoader = null)
{
contentLink = contentLink ??
html.ViewContext.RequestContext.GetContentLink();
rootLink = rootLink ??
ContentReference.StartPage;
var writer = html.ViewContext.Writer;
//Top level elements
writer.WriteLine("<nav class=\"navbar navbar-inverse\">");
writer.WriteLine("<ul class=\"nav navbar-nav\">");
if (includeRoot)
{
//Link to the root page
if (rootLink.CompareToIgnoreWorkID(contentLink))
{
writer.WriteLine("<li class=\"active\">");
}
else
{
writer.WriteLine("<li>");
}
writer.WriteLine(
html.PageLink(rootLink).ToHtmlString());
writer.WriteLine("</li>");
}
//Retrieve and filter the root pages children
contentLoader = contentLoader ??
ServiceLocator.Current.GetInstance<IContentLoader>();
var topLevelPages = contentLoader
.GetChildren<PageData>(rootLink);
topLevelPages = FilterForVisitor.Filter(topLevelPages)
.OfType<PageData>()
.Where(x => x.VisibleInMenu);
//Retrieve the "path" from the current page up to the
//root page in the content tree in order to check if
//a link should be highlighted.
var currentBranch = contentLoader.GetAncestors(contentLink)
.Select(x => x.ContentLink)
.ToList();
currentBranch.Add(contentLink);
//Link to the root pages children
foreach (var topLevelPage in topLevelPages)
{
if (currentBranch.Any(x =>
x.CompareToIgnoreWorkID(topLevelPage.ContentLink)))
{
writer.WriteLine("<li class=\"active\">");
}
else
{
writer.WriteLine("<li>");
}
writer.WriteLine(html.PageLink(topLevelPage).ToHtmlString());
writer.WriteLine("</li>");
}
//Close top level element
writer.WriteLine("</ul>");
writer.WriteLine("</nav>");
}