Exemplo n.º 1
0
        public static async Task <CdmDocumentDefinition> FromData(CdmCorpusContext ctx, LocalEntity obj, List <CdmTraitDefinition> extensionTraitDefList, List <CdmTraitDefinition> localExtensionTraitDefList)
        {
            var docName  = $"{obj.Name}.cdm.json";
            var document = ctx.Corpus.MakeObject <CdmDocumentDefinition>(CdmObjectType.DocumentDef, docName);

            // import at least foundations
            document.Imports.Add("cdm:/foundations.cdm.json");

            var entity = await EntityPersistence.FromData(ctx, obj, extensionTraitDefList, localExtensionTraitDefList);

            if (entity == null)
            {
                Logger.Error(ctx, Tag, nameof(FromData), null, CdmLogCode.ErrPersistModelJsonEntityConversionError);
                return(null);
            }

            if (obj.Imports != null)
            {
                foreach (var import in obj.Imports)
                {
                    if (import.CorpusPath?.Equals("cdm:/foundations.cdm.json") == true)
                    {
                        // don't add foundations twice
                        continue;
                    }
                    document.Imports.Add(CdmFolder.ImportPersistence.FromData(ctx, import));
                }
            }

            document.Definitions.Add(entity);

            return(document);
        }
Exemplo n.º 2
0
        public static async Task<CdmDocumentDefinition> FromData(CdmCorpusContext ctx, LocalEntity obj, List<CdmTraitDefinition> extensionTraitDefList, List<CdmTraitDefinition> localExtensionTraitDefList)
        {
            var docName = $"{obj.Name}.cdm.json";
            var document = ctx.Corpus.MakeObject<CdmDocumentDefinition>(CdmObjectType.DocumentDef, docName);

            // import at least foundations
            document.Imports.Add("cdm:/foundations.cdm.json");

            var entity = await EntityPersistence.FromData(ctx, obj, extensionTraitDefList, localExtensionTraitDefList);

            if (entity == null)
            {
                Logger.Error(nameof(DocumentPersistence), ctx, "There was an error while trying to convert a model.json entity to the CDM entity.");
                return null;
            }

            if (obj.Imports != null)
            {
                foreach (var import in obj.Imports)
                {
                    if (import.CorpusPath?.Equals("cdm:/foundations.cdm.json") == true)
                    {
                        // don't add foundations twice
                        continue;
                    }
                    document.Imports.Add(CdmFolder.ImportPersistence.FromData(ctx, import));
                }
            }

            document.Definitions.Add(entity);

            return document;
        }