public static DomReadOnlyRelationships Create(IGetRelationships getRelationships)
        {
            Contract.Requires(getRelationships != null && getRelationships.Relationships != null);

            var relationships = getRelationships.Relationships;

            var domReadOnlyRelationships = new DomReadOnlyRelationships(relationships);

            return(domReadOnlyRelationships);
        }
예제 #2
0
        public static DomReadOnlyRelationship Create(string rel, IGetRelationships getRelationships)
        {
            Contract.Requires(String.IsNullOrWhiteSpace(rel) == false);
            Contract.Requires(getRelationships != null && getRelationships.Relationships != null);

            var relationship = getRelationships.GetRelationship(rel);

            var domReadOnlyRelationship = new DomReadOnlyRelationship(rel, relationship);

            return(domReadOnlyRelationship);
        }
        public static Relationship GetRelationship(this IGetRelationships getRelationships, string rel)
        {
            Contract.Requires(getRelationships != null);

            var relationships = getRelationships.Relationships;

            if (relationships != null)
            {
                return(relationships.GetRelationship(rel));
            }

            throw new RelationshipNotFoundException(rel);
        }
        public static bool TryGetRelationship(this IGetRelationships getRelationships, string rel, out Relationship relationship)
        {
            Contract.Requires(getRelationships != null);

            var relationships = getRelationships.Relationships;

            if (relationships != null)
            {
                return(relationships.TryGetRelationship(rel, out relationship));
            }

            relationship = null;
            return(false);
        }
        public static void MapApiRelationshipsToClrResource(this IResourceType resourceType, object clrResource, IGetRelationships apiGetRelationships)
        {
            Contract.Requires(resourceType != null);
            Contract.Requires(clrResource != null);
            Contract.Requires(apiGetRelationships != null);

            var apiRelationships = apiGetRelationships.Relationships;

            resourceType.SetClrRelationships(clrResource, apiRelationships);
        }
예제 #6
0
        protected static void WriteRelationships(JsonWriter writer, JsonSerializer serializer, IGetRelationships getRelationships)
        {
            Contract.Requires(writer != null);
            Contract.Requires(serializer != null);
            Contract.Requires(getRelationships != null);

            if (getRelationships.Relationships == null || getRelationships.Relationships.Any() == false)
            {
                return;
            }

            writer.WritePropertyName(Keywords.Relationships);
            var relationshipsJToken  = JToken.FromObject(getRelationships.Relationships, serializer);
            var relationshipsJObject = (JObject)relationshipsJToken;

            relationshipsJObject.WriteTo(writer);
        }
        // PUBLIC METHODS ///////////////////////////////////////////////////
        #region Methods
        public static bool HasRelationships(this IGetRelationships getRelationships)
        {
            Contract.Requires(getRelationships != null);

            return(getRelationships.Relationships != null);
        }