Ejemplo n.º 1
0
        // PRIVATE METHODS //////////////////////////////////////////////////
        #region Methods
        private static Link GetStandardLink(IGetLinks getLinks, string rel)
        {
            Contract.Requires(getLinks != null);
            Contract.Requires(String.IsNullOrWhiteSpace(rel) == false);

            Link standardLink;

            return(getLinks.TryGetLink(rel, out standardLink) ? standardLink : null);
        }
        public static DomReadOnlyLinks Create(IGetLinks getLinks)
        {
            Contract.Requires(getLinks != null && getLinks.Links != null);

            var links = getLinks.Links;

            var domReadOnlyLinks = new DomReadOnlyLinks(links);

            return(domReadOnlyLinks);
        }
        public static DomReadOnlyLink Create(string rel, IGetLinks getLinks)
        {
            Contract.Requires(String.IsNullOrWhiteSpace(rel) == false);
            Contract.Requires(getLinks != null && getLinks.Links != null);

            var link = getLinks.GetLink(rel);

            var domReadOnlyLink = new DomReadOnlyLink(rel, link);

            return(domReadOnlyLink);
        }
Ejemplo n.º 4
0
        public static Uri GetUri(this IGetLinks getLinks, string rel)
        {
            Contract.Requires(getLinks != null);

            var links = getLinks.Links;

            if (links != null)
            {
                return(links.GetUri(rel));
            }

            throw new LinkNotFoundException(rel);
        }
Ejemplo n.º 5
0
        public static bool TryGetUri(this IGetLinks getLinks, string rel, out Uri uri)
        {
            Contract.Requires(getLinks != null);

            var links = getLinks.Links;

            if (links != null)
            {
                return(links.TryGetUri(rel, out uri));
            }

            uri = null;
            return(false);
        }
Ejemplo n.º 6
0
        public static bool TryGetLink(this IGetLinks getLinks, string rel, out Link link)
        {
            Contract.Requires(getLinks != null);

            var links = getLinks.Links;

            if (links != null)
            {
                return(links.TryGetLink(rel, out link));
            }

            link = null;
            return(false);
        }
Ejemplo n.º 7
0
        public static bool TryGetHRef(this IGetLinks getLinks, string rel, out string hRef)
        {
            Contract.Requires(getLinks != null);

            var links = getLinks.Links;

            if (links != null)
            {
                return(links.TryGetHRef(rel, out hRef));
            }

            hRef = null;
            return(false);
        }
        public static void MapApiLinksToClrResource(this IResourceType resourceType, object clrResource, IGetLinks apiGetLinks)
        {
            Contract.Requires(resourceType != null);
            Contract.Requires(clrResource != null);
            Contract.Requires(apiGetLinks != null);

            var apiLinks = apiGetLinks.Links;

            resourceType.SetClrLinks(clrResource, apiLinks);
        }
Ejemplo n.º 9
0
 public static Link SelfLink(this IGetLinks getLinks)
 {
     Contract.Requires(getLinks != null);
     return(GetStandardLink(getLinks, Keywords.Self));
 }
Ejemplo n.º 10
0
        // PUBLIC METHODS ///////////////////////////////////////////////////
        #region IGetLinks Extension Methods
        public static bool HasLinks(this IGetLinks getLinks)
        {
            Contract.Requires(getLinks != null);

            return(getLinks.Links != null);
        }
Ejemplo n.º 11
0
 public static Link CanonicalLink(this IGetLinks getLinks)
 {
     Contract.Requires(getLinks != null);
     return(GetStandardLink(getLinks, Keywords.Canonical));
 }
Ejemplo n.º 12
0
        protected static void WriteLinks(JsonWriter writer, JsonSerializer serializer, IGetLinks getLinks)
        {
            Contract.Requires(writer != null);
            Contract.Requires(serializer != null);
            Contract.Requires(getLinks != null);

            if (getLinks.Links == null || getLinks.Links.Any() == false)
            {
                return;
            }

            writer.WritePropertyName(Keywords.Links);
            var linksJToken  = JToken.FromObject(getLinks.Links, serializer);
            var linksJObject = (JObject)linksJToken;

            linksJObject.WriteTo(writer);
        }