// PUBLIC METHODS /////////////////////////////////////////////////// #region Extensions Methods public static void MapClrTypeToDomResource(this IResourceType resourceType, DomReadWriteResource domResource) { Contract.Requires(resourceType != null); Contract.Requires(domResource != null); domResource.CreateAndAddNode(() => DomType.CreateFromResourceType(resourceType)); }
private static void MapDomResourceToApiLinks(ISetLinks apiSetLinks, DomReadWriteResource domResource) { Contract.Requires(apiSetLinks != null); Contract.Requires(domResource != null); var apiLinks = GetApiResourceLinks(domResource); apiSetLinks.Links = apiLinks; }
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)); }
private static Links GetApiResourceLinks(DomReadWriteResource domResource) { Contract.Requires(domResource != null); var domLinksNode = domResource.GetNode(DomNodeType.Links); if (domLinksNode == null) { return(null); } var domLinks = (IDomLinks)domLinksNode; var apiLinks = domLinks.Links; return(apiLinks); }
private static Relationships GetApiResourceRelationships(DomReadWriteResource domResource) { Contract.Requires(domResource != null); var domRelationshipsNode = domResource.GetNode(DomNodeType.Relationships); if (domRelationshipsNode == null) { return(null); } var domRelationships = (IDomRelationships)domRelationshipsNode; var apiRelationships = domRelationships.Relationships; return(apiRelationships); }
private static void MapDomResourceToApiMeta(ISetMeta apiSetMeta, DomReadWriteResource domResource) { Contract.Requires(apiSetMeta != null); Contract.Requires(domResource != null); var domMetaNode = domResource.GetNode(DomNodeType.Meta); if (domMetaNode == null) { return; } var domMeta = (IDomMeta)domMetaNode; var apiMeta = domMeta.Meta; apiSetMeta.Meta = apiMeta; }
public static void MapClrAttributesToDomResource(this IResourceType resourceType, DomReadWriteResource domResource, object clrResource, Func <string, string, bool> attributePredicate) { Contract.Requires(resourceType != null); Contract.Requires(domResource != null); if (clrResource == null) { return; } var serviceModel = domResource.GetServiceModel(); var domAttributes = domResource.CreateAndAddNode(() => DomAttributes.Create()); var apiType = resourceType.ResourceIdentityInfo.ApiType; var attributeInfoCollection = resourceType.AttributesInfo.Collection; foreach (var attributeInfo in attributeInfoCollection) { var apiField = attributeInfo.ApiPropertyName; if (attributePredicate != null && attributePredicate(apiType, apiField) == false) { // Skip adding this attribute. continue; } var localAttributeInfo = attributeInfo; domAttributes.CreateAndAddNode(() => DomAttribute.CreateFromClrResource(serviceModel, localAttributeInfo, clrResource)); } }
public static void MapClrAttributesToDomResource(this IResourceType resourceType, DomReadWriteResource domResource, object clrResource) { resourceType.MapClrAttributesToDomResource(domResource, clrResource, null); }
public static void MapDomResourceToClrLinks(this IResourceType resourceType, object clrResource, DomReadWriteResource domResource) { Contract.Requires(resourceType != null); Contract.Requires(clrResource != null); Contract.Requires(domResource != null); var domLinksNode = domResource.GetNode(DomNodeType.Links); if (domLinksNode == null) { return; } var domLinks = (IDomLinks)domLinksNode; var clrLinks = domLinks.Links; resourceType.SetClrLinks(clrResource, clrLinks); }
public static DomData CreateFromResource(DomReadWriteResource domReadWriteResource) { var domData = new DomData(domReadWriteResource); return(domData); }
public static void MapDomResourceToClrAttributes(this IResourceType resourceType, object clrResource, DomReadWriteResource domResource) { Contract.Requires(resourceType != null); Contract.Requires(clrResource != null); Contract.Requires(domResource != null); var domAttributesNode = domResource.GetNode <DomNodeType, DomAttributes>(DomNodeType.Attributes); if (domAttributesNode == null) { return; } var domAttributeNodes = domAttributesNode.Nodes() .Cast <DomAttribute>() .ToList(); foreach (var domAttributeNode in domAttributeNodes) { var clrPropertyName = domAttributeNode.ClrPropertyName; var clrPropertyValue = domAttributeNode.ClrAttribute; var clrAttribute = resourceType.GetClrAttributeInfo(clrPropertyName); clrAttribute.SetClrProperty(clrResource, clrPropertyValue); } }
public static void MapDomResourceToClrId(this IResourceType resourceType, object clrResource, DomReadWriteResource domResource) { Contract.Requires(resourceType != null); Contract.Requires(clrResource != null); Contract.Requires(domResource != null); var domIdNode = domResource.GetNode <DomNodeType, DomId>(DomNodeType.Id); if (domIdNode == null) { return; } var clrId = domIdNode.ClrId; resourceType.SetClrId(clrResource, clrId); }
public static void MapDomResourceToClrMeta(this IResourceType resourceType, object clrResource, DomReadWriteResource domResource) { Contract.Requires(resourceType != null); Contract.Requires(clrResource != null); Contract.Requires(domResource != null); var domMetaNode = domResource.GetNode(DomNodeType.Meta); if (domMetaNode == null) { return; } var domMeta = (IDomMeta)domMetaNode; var clrMeta = domMeta.Meta; resourceType.SetClrMeta(clrResource, clrMeta); }
// PUBLIC METHODS /////////////////////////////////////////////////// #region Factory Methods public static DomReadWriteResource Create(params Node <DomNodeType>[] domNodes) { var domReadWriteResource = new DomReadWriteResource(domNodes); return(domReadWriteResource); }
public static void MapClrAttributesToDomResource(this IResourceType resourceType, DomReadWriteResource domResource, object clrResource) { Contract.Requires(resourceType != null); Contract.Requires(domResource != null); if (clrResource == null) { return; } var serviceModel = domResource.GetServiceModel(); var domAttributes = domResource.CreateAndAddNode(() => DomAttributes.Create()); var attributeInfoCollection = resourceType.AttributesInfo.Collection; foreach (var attributeInfo in attributeInfoCollection) { var localAttributeInfo = attributeInfo; domAttributes.CreateAndAddNode(() => DomAttribute.CreateFromClrResource(serviceModel, localAttributeInfo, clrResource)); } }
private static void MapDomResourceToApiRelationships(ISetRelationships apiSetRelationships, DomReadWriteResource domResource) { Contract.Requires(apiSetRelationships != null); Contract.Requires(domResource != null); var apiRelationships = GetApiResourceRelationships(domResource); apiSetRelationships.Relationships = apiRelationships; }
private static void MapDomResourceToApiAttributes(ISetAttributes apiSetAttributes, DomReadWriteResource domResource) { Contract.Requires(apiSetAttributes != null); Contract.Requires(domResource != null); var domAttributesNode = domResource.GetNode <DomNodeType, DomAttributes>(DomNodeType.Attributes); if (domAttributesNode == null) { return; } var domAttributeCollection = domAttributesNode.Nodes() .Cast <DomAttribute>() .ToList(); if (!domAttributeCollection.Any()) { return; } var apiObject = CreateApiObjectFromDomAttributeCollection(domAttributeCollection); apiSetAttributes.Attributes = apiObject; }
private static void MapDomResourceToApiId(ISetResourceIdentity apiSetResourceIdentity, DomReadWriteResource domResource) { Contract.Requires(apiSetResourceIdentity != null); Contract.Requires(domResource != null); var domIdNode = domResource.GetNode <DomNodeType, DomId>(DomNodeType.Id); if (domIdNode == null) { return; } var apiId = domIdNode.ApiId; apiSetResourceIdentity.Id = apiId; }
private static void MapDomResourceToApiType(ISetResourceIdentity apiSetResourceIdentity, DomReadWriteResource domResource) { Contract.Requires(apiSetResourceIdentity != null); Contract.Requires(domResource != null); var domTypeNode = domResource.GetNode <DomNodeType, DomType>(DomNodeType.Type); if (domTypeNode == null) { return; } var apiResourceType = domTypeNode.ApiType; apiSetResourceIdentity.Type = apiResourceType; }