public static IHtmlString PageLinkUrl(this UrlHelper urlHelper, PageData page)
{
var urlResolver = ServiceLocator.Current.GetInstance<UrlResolver>();
switch (page.LinkType)
{
case PageShortcutType.Normal:
case PageShortcutType.FetchData:
return new MvcHtmlString(urlResolver.GetUrl(page.ContentLink));
case PageShortcutType.Shortcut:
var shortcutProperty = page.Property["PageShortcutLink"] as PropertyPageReference;
if (shortcutProperty != null && !ContentReference.IsNullOrEmpty(shortcutProperty.ContentLink))
{
return urlHelper.PageLinkUrl(shortcutProperty.ContentLink);
}
break;
case PageShortcutType.External:
return new MvcHtmlString(page.LinkURL);
}
return MvcHtmlString.Empty;
}