public static void MapClrIdToDomResource(this IResourceType resourceType, DomReadWriteResource domResource, object clrResource)
        {
            Contract.Requires(resourceType != null);
            Contract.Requires(domResource != null);

            if (clrResource == null)
            {
                return;
            }

            domResource.CreateAndAddNode(() => DomId.CreateFromClrResource(resourceType, clrResource));
        }
        internal DomId SetDomIdFromClrResourceId <TResourceId>(IResourceType resourceType, TResourceId clrResourceId)
        {
            Contract.Requires(resourceType != null);

            // Validation
            this.ValidateIdDoesNotExist();

            // Add the one allowed DOM identifier node to the DOM resource.
            var domId = this.CreateAndAddNode(() => DomId.CreateFromClrResourceId(resourceType, clrResourceId));

            return(domId);
        }
Example #3
0
        public static DomId CreateFromClrResourceId <TResourceId>(IResourceType resourceType, TResourceId clrResourceId)
        {
            Contract.Requires(resourceType != null);

            var resourceIdentity = resourceType.ResourceIdentityInfo;

            var apiId = resourceIdentity.ToApiId(clrResourceId);

            var clrId           = resourceIdentity.ToClrId(clrResourceId);
            var clrPropertyName = resourceIdentity.Id.ClrPropertyName;
            var clrPropertyType = resourceIdentity.Id.ClrPropertyType;

            var domId = new DomId(apiId, clrId, clrPropertyName, clrPropertyType);

            return(domId);
        }
Example #4
0
        // PUBLIC METHODS ///////////////////////////////////////////////////
        #region Factory Methods
        public static DomId CreateFromApiResourceIdentity(IResourceType resourceType, IGetResourceIdentity apiResourceIdentity)
        {
            Contract.Requires(resourceType != null);
            Contract.Requires(apiResourceIdentity != null);

            var apiId = apiResourceIdentity.Id;

            var resourceIdentity = resourceType.ResourceIdentityInfo;
            var clrId            = resourceIdentity.ToClrId(apiId);
            var clrPropertyName  = resourceIdentity.Id.ClrPropertyName;
            var clrPropertyType  = resourceIdentity.Id.ClrPropertyType;

            var domId = new DomId(apiId, clrId, clrPropertyName, clrPropertyType);

            return(domId);
        }
Example #5
0
        public static DomId CreateFromClrResource(IResourceType resourceType, object clrResource)
        {
            Contract.Requires(resourceType != null);
            Contract.Requires(clrResource != null);

            var resourceIdentity = resourceType.ResourceIdentityInfo;

            var apiId = resourceIdentity.GetApiId(clrResource);

            var clrId           = resourceIdentity.GetClrId(clrResource);
            var clrPropertyName = resourceIdentity.GetClrIdPropertyName();
            var clrPropertyType = resourceIdentity.GetClrIdPropertyType();

            var domId = new DomId(apiId, clrId, clrPropertyName, clrPropertyType);

            return(domId);
        }