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); }
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; }