Beispiel #1
0
        /// <summary>
        /// Create a simple entity called 'TestSource' with a single attribute
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="attributesParams"></param>
        /// <returns></returns>
        public CdmEntityDefinition CreateBasicEntity(string entityName, List <TypeAttributeParam> attributesParams)
        {
            CdmEntityDefinition entity = Corpus.MakeObject <CdmEntityDefinition>(CdmObjectType.EntityDef, entityName);

            foreach (TypeAttributeParam attributesParam in attributesParams)
            {
                CdmTypeAttributeDefinition attribute = Corpus.MakeObject <CdmTypeAttributeDefinition>(CdmObjectType.TypeAttributeDef, nameOrRef: attributesParam.AttributeName, simpleNameRef: false);
                attribute.DataType    = Corpus.MakeRef <CdmDataTypeReference>(CdmObjectType.DataTypeRef, refObj: attributesParam.AttributeDataType, simpleNameRef: true);
                attribute.Purpose     = Corpus.MakeRef <CdmPurposeReference>(CdmObjectType.PurposeRef, refObj: attributesParam.AttributePurpose, simpleNameRef: true);
                attribute.DisplayName = attributesParam.AttributeName;

                entity.Attributes.Add(attribute);
            }

            CdmDocumentDefinition entityDoc = Corpus.MakeObject <CdmDocumentDefinition>(CdmObjectType.DocumentDef, $"{entityName}.cdm.json", false);

            entityDoc.Imports.Add(AllImportsDocName);
            entityDoc.Definitions.Add(entity);

            LocalStorageRoot.Documents.Add(entityDoc, entityDoc.Name);
            DefaultManifest.Entities.Add(entity);
            AllImports.Imports.Add(entity.InDocument.Name);

            return(entity);
        }
Beispiel #2
0
        /// <summary>
        /// Create an entity attribute
        /// </summary>
        /// <param name="entityAttributeName"></param>
        /// <param name="projectionSourceEntityRef"></param>
        /// <returns></returns>
        public CdmEntityAttributeDefinition CreateEntityAttribute(string entityAttributeName, CdmEntityReference projectionSourceEntityRef)
        {
            CdmEntityAttributeDefinition entityAttribute = Corpus.MakeObject <CdmEntityAttributeDefinition>(CdmObjectType.EntityAttributeDef, nameOrRef: entityAttributeName, simpleNameRef: false);

            entityAttribute.Entity = projectionSourceEntityRef;

            return(entityAttribute);
        }
Beispiel #3
0
        /// <summary>
        /// Create an inline entity reference for a projection
        /// </summary>
        /// <param name="projectionSourceName"></param>
        /// <returns></returns>
        public CdmEntityReference CreateProjectionInlineEntityReference(CdmProjection projection)
        {
            CdmEntityReference projectionInlineEntityRef = Corpus.MakeObject <CdmEntityReference>(CdmObjectType.EntityRef, null);

            projectionInlineEntityRef.ExplicitReference = projection;

            return(projectionInlineEntityRef);
        }
Beispiel #4
0
        /// <summary>
        /// Create a simple projection object
        /// </summary>
        /// <param name="projectionSourceName"></param>
        /// <returns></returns>
        public CdmProjection CreateProjection(string projectionSourceName)
        {
            CdmProjection projection = Corpus.MakeObject <CdmProjection>(CdmObjectType.ProjectionDef);

            projection.Source = Corpus.MakeObject <CdmEntityReference>(CdmObjectType.EntityRef, projectionSourceName, simpleNameRef: true);

            return(projection);
        }
Beispiel #5
0
        /// <summary>
        /// Create a default manifest
        /// </summary>
        public CdmManifestDefinition CreateDefaultManifest()
        {
            CdmManifestDefinition manifestDefault = Corpus.MakeObject <CdmManifestDefinition>(CdmObjectType.ManifestDef, ManifestName);

            LocalStorageRoot.Documents.Add(manifestDefault, ManifestDocName);

            return(manifestDefault);
        }
Beispiel #6
0
        /// <summary>
        /// Create a Type Attribute
        /// </summary>
        /// <returns></returns>
        public CdmTypeAttributeDefinition CreateTypeAttribute(string attributeName, string dataType, string purpose)
        {
            CdmDataTypeReference dataTypeRef = Corpus.MakeRef <CdmDataTypeReference>(CdmObjectType.DataTypeRef, dataType, simpleNameRef: false);

            CdmPurposeReference purposeRef = Corpus.MakeRef <CdmPurposeReference>(CdmObjectType.PurposeRef, purpose, simpleNameRef: false);

            CdmTypeAttributeDefinition attribute = Corpus.MakeObject <CdmTypeAttributeDefinition>(CdmObjectType.TypeAttributeDef, nameOrRef: attributeName, simpleNameRef: false);

            attribute.DataType = dataTypeRef;
            attribute.Purpose  = purposeRef;

            return(attribute);
        }