public static int GetLinkId(NcInternalLinkItemModel item) { if (item.InternalLink == null || item.InternalLink.Count() == 0) { return(0); } return(item.InternalLink.First().Id); }
public static LinkItem GetLink(this IPublishedContent item) { //if (!item.IsComposedOf(AbstractNcLinkItemModel.ModelTypeAlias)) { return null; } LinkItem link = new LinkItem(); switch (item.DocumentTypeAlias) { case NcExternalLinkItemModel.ModelTypeAlias: link.Url = GetLinkUrl(new NcExternalLinkItemModel(item)); break; case NcInternalLinkItemModel.ModelTypeAlias: var itemConverted = new NcInternalLinkItemModel(item); link.Url = GetLinkUrl(itemConverted); link.InternalLinkId = GetLinkId(itemConverted); link.IsInternal = true; break; case NcFileLinkItemModel.ModelTypeAlias: link.Url = GetLinkUrl(new NcFileLinkItemModel(item)); link.IsFile = true; break; } if (link.Url != null) { link.UrlSecure = link.Url.Replace("http://", "https://"); link.UrlNoHttp = link.Url.Replace("http://", "").Replace("https://", ""); } var itemAdapted = new AbstractNcLinkItemModel(item); link.Target = (itemAdapted.OpenLinkInNewWindow) ? "_blank" : "_self"; link.Caption = itemAdapted.Caption; string defaultAltValue = (itemAdapted.UseCaptionForAltAndTitle) ? itemAdapted.Caption : string.Empty; link.AltText = (!string.IsNullOrEmpty(itemAdapted.AltText)) ? itemAdapted.AltText : defaultAltValue; link.TitleText = (!string.IsNullOrEmpty(itemAdapted.TitleText)) ? itemAdapted.TitleText : defaultAltValue; if (itemAdapted.OtherAttributes != null && itemAdapted.OtherAttributes.Count() > 0) { link.OtherAttributes = new NameValueCollection(); foreach (var v in itemAdapted.OtherAttributes.Select(x => new NcNameValuePairItemModel(x))) { link.OtherAttributes.Add(v.NvName, v.NvValue); } } return(link); }
public static string GetLinkUrl(NcInternalLinkItemModel item) { if (item.InternalLink == null || item.InternalLink.Count() == 0) { return(null); } StringBuilder sb = new StringBuilder(item.InternalLink.First().Url); if (!string.IsNullOrEmpty(item.InternalLinkQuerystringParameters)) { sb.Append("?"); sb.Append(item.InternalLinkQuerystringParameters); } if (!string.IsNullOrEmpty(item.InternalLinkAnchor)) { sb.Append("#"); sb.Append(item.InternalLinkAnchor); } return(sb.ToString()); }