public ExtendedEPiLinkModel(IContentRepository contentRepository, UIDescriptorRegistry uiDescriptors, IFrameRepository frameRepository, UrlHelper urlHelper) { _contentRepository = contentRepository; _uiDescriptors = uiDescriptors; _frameRepository = frameRepository; _urlHelper = urlHelper; _typeIdentifier = _uiDescriptors.GetTypeIdentifiers(typeof(LinkItem)).FirstOrDefault(); }
private void ModifyIContentProperties(LinkItem serverModel, ExtendedEPiLinkModel clientModel) { var mappedHref = serverModel.GetMappedHref(); if (string.IsNullOrEmpty(mappedHref)) { return; } var hrefWithoutHash = mappedHref; var anchorOnPage = ""; var indexOfHash = mappedHref.IndexOf('#'); if (indexOfHash > 0) { hrefWithoutHash = mappedHref.Substring(0, indexOfHash - 1); anchorOnPage = mappedHref.Substring(indexOfHash + 1); } clientModel.Href = hrefWithoutHash; clientModel.AnchorOnPage = anchorOnPage; var contentGuid = PermanentLinkUtility.GetGuid(hrefWithoutHash); var contentReference = PermanentLinkUtility.FindContentReference(contentGuid); IContent content; if (!(contentReference != ContentReference.EmptyReference) || !_contentRepository.TryGet(contentReference, out content)) { return; } clientModel.TypeIdentifier = _uiDescriptors.GetTypeIdentifiers(content.GetType()).FirstOrDefault(); var friendlyUrl = _urlHelper.ContentUrl(content.ContentLink); var absoluteUriBySettings = UriSupport.AbsoluteUrlBySettings(friendlyUrl); clientModel.PublicUrl = indexOfHash > 0 ? string.Format("{0}#{1}", absoluteUriBySettings, anchorOnPage) : absoluteUriBySettings; }
private string GetTypeIdentifier(IContent c) { return(_uiDescriptorRegistry.GetTypeIdentifiers(c.GetType()).FirstOrDefault()); }
/// <summary> /// Gets the type identifier of the content. /// </summary> /// <param name="content">The content.</param> /// <param name="uiDescriptorRegistry"/> public static string GetTypeIdentifier(this IContent content, UIDescriptorRegistry uiDescriptorRegistry) => Enumerable.FirstOrDefault(uiDescriptorRegistry.GetTypeIdentifiers(content.GetType()));