Exemplo n.º 1
0
 public ExtendedEPiLinkModel(IContentRepository contentRepository, UIDescriptorRegistry uiDescriptors, IFrameRepository frameRepository, UrlHelper urlHelper)
 {
     _contentRepository = contentRepository;
     _uiDescriptors     = uiDescriptors;
     _frameRepository   = frameRepository;
     _urlHelper         = urlHelper;
     _typeIdentifier    = _uiDescriptors.GetTypeIdentifiers(typeof(LinkItem)).FirstOrDefault();
 }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
 private string GetTypeIdentifier(IContent c)
 {
     return(_uiDescriptorRegistry.GetTypeIdentifiers(c.GetType()).FirstOrDefault());
 }
Exemplo n.º 4
0
 /// <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()));