public static ManifestContent ToData(CdmManifestDefinition instance, ResolveOptions resOpt, CopyOptions options) { var documentContent = DocumentPersistence.ToData(instance, resOpt, options); var manifestContent = new ManifestContent() { ManifestName = instance.ManifestName, JsonSchemaSemanticVersion = documentContent.JsonSchemaSemanticVersion, Schema = documentContent.Schema, Imports = documentContent.Imports, DocumentVersion = documentContent.DocumentVersion }; manifestContent.ManifestName = instance.ManifestName; manifestContent.LastFileStatusCheckTime = TimeUtils.GetFormattedDateString(instance.LastFileStatusCheckTime); manifestContent.LastFileModifiedTime = TimeUtils.GetFormattedDateString(instance.LastFileModifiedTime); manifestContent.LastChildFileModifiedTime = TimeUtils.GetFormattedDateString(instance.LastChildFileModifiedTime); manifestContent.Entities = CopyDataUtils.ListCopyData(resOpt, instance.Entities, options); manifestContent.SubManifests = Utils.ListCopyData <ManifestDeclaration>(resOpt, instance.SubManifests, options); manifestContent.Explanation = instance.Explanation; manifestContent.ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options); if (instance.Relationships != null && instance.Relationships.Count > 0) { manifestContent.Relationships = instance.Relationships.Select(relationship => { return(E2ERelationshipPersistence.ToData(relationship, resOpt, options)); }).ToList(); } return(manifestContent); }
public static DataPartition ToData(CdmDataPartitionDefinition instance, ResolveOptions resOpt, CopyOptions options) { var argumentsCopy = new List <Argument>(); if (instance.Arguments != null) { foreach (var argumentList in instance.Arguments) { foreach (var argumentValue in argumentList.Value) { argumentsCopy.Add( new Argument() { Name = argumentList.Key, Value = argumentValue } ); } } } var result = new DataPartition { Name = instance.Name, Location = instance.Location, LastFileStatusCheckTime = TimeUtils.GetFormattedDateString(instance.LastFileStatusCheckTime), LastFileModifiedTime = TimeUtils.GetFormattedDateString(instance.LastFileModifiedTime), ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options), Arguments = argumentsCopy.Count() > 0 ? argumentsCopy : null, SpecializedSchema = instance.SpecializedSchema }; return(result); }
public static TraitGroup ToData(CdmTraitGroupDefinition instance, ResolveOptions resOpt, CopyOptions options) { return(new TraitGroup { Explanation = instance.Explanation, TraitGroupName = instance.TraitGroupName, ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options) }); }
public static Purpose ToData(CdmPurposeDefinition instance, ResolveOptions resOpt, CopyOptions options) { return(new Purpose { Explanation = instance.Explanation, PurposeName = instance.PurposeName, ExtendsPurpose = Utils.JsonForm(instance.ExtendsPurpose, resOpt, options), ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options) }); }
public static DocumentContent ToData(CdmDocumentDefinition instance, ResolveOptions resOpt, CopyOptions options) { return(new DocumentContent { Schema = instance.Schema, JsonSchemaSemanticVersion = instance.JsonSchemaSemanticVersion, Imports = Utils.ListCopyData <Import>(resOpt, instance.Imports, options), Definitions = CopyDataUtils.ListCopyData(resOpt, instance.Definitions, options) }); }
public static DataType ToData(CdmDataTypeDefinition instance, ResolveOptions resOpt, CopyOptions options) { return(new DataType { Explanation = instance.Explanation, DataTypeName = instance.DataTypeName, ExtendsDataType = Utils.JsonForm(instance.ExtendsDataType, resOpt, options), ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options) }); }
public static dynamic ToData(CdmAttributeGroupDefinition instance, ResolveOptions resOpt, CopyOptions options) { return(new AttributeGroup { Explanation = instance.Explanation, AttributeGroupName = instance.AttributeGroupName, ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options), AttributeContext = instance.AttributeContext?.CopyData(resOpt, options) as string, Members = CopyDataUtils.ListCopyData(resOpt, instance.Members, options) }); }
public static EntityAttribute ToData(CdmEntityAttributeDefinition instance, ResolveOptions resOpt, CopyOptions options) { return(new EntityAttribute { Explanation = instance.Explanation, Name = instance.Name, Entity = Utils.JsonForm(instance.Entity, resOpt, options), Purpose = Utils.JsonForm(instance.Purpose, resOpt, options), AppliedTraits = CopyDataUtils.ListCopyData(resOpt, instance.AppliedTraits, options), ResolutionGuidance = Utils.JsonForm(instance.ResolutionGuidance, resOpt, options) }); }
public static E2ERelationship ToData(CdmE2ERelationship instance, ResolveOptions resOpt, CopyOptions options) { return(new E2ERelationship { Name = !string.IsNullOrWhiteSpace(instance.Name) ? instance.Name : null, FromEntity = instance.FromEntity, FromEntityAttribute = instance.FromEntityAttribute, ToEntity = instance.ToEntity, ToEntityAttribute = instance.ToEntityAttribute, ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options) }); }
public static Trait ToData(CdmTraitDefinition instance, ResolveOptions resOpt, CopyOptions options) { return(new Trait { Explanation = instance.Explanation, TraitName = instance.TraitName, ExtendsTrait = Utils.JsonForm(instance.ExtendsTrait, resOpt, options), HasParameters = CopyDataUtils.ListCopyData(resOpt, instance.Parameters, options), Elevated = instance.Elevated == true ? (bool?)true : null, Ugly = instance.Ugly == true ? (bool?)true : null, AssociatedProperties = instance.AssociatedProperties }); }
public static EntityAttribute ToData(CdmEntityAttributeDefinition instance, ResolveOptions resOpt, CopyOptions options) { return(new EntityAttribute { Explanation = instance.Explanation, Name = instance.Name, IsPolymorphicSource = instance.IsPolymorphicSource, Entity = Utils.JsonForm(instance.Entity, resOpt, options), Purpose = Utils.JsonForm(instance.Purpose, resOpt, options), AppliedTraits = CopyDataUtils.ListCopyData(resOpt, instance.AppliedTraits?.Where(trait => !trait.IsFromProperty), options), ResolutionGuidance = Utils.JsonForm(instance.ResolutionGuidance, resOpt, options), DisplayName = instance.GetProperty("displayName"), Description = instance.GetProperty("description") }); }
public static EntityDeclarationDefinition ToData(CdmReferencedEntityDeclarationDefinition instance, ResolveOptions resOpt, CopyOptions options) { var result = new EntityDeclarationDefinition { Type = EntityDeclarationDefinitionType.ReferencedEntity, LastFileStatusCheckTime = TimeUtils.GetFormattedDateString(instance.LastFileStatusCheckTime), LastFileModifiedTime = TimeUtils.GetFormattedDateString(instance.LastFileModifiedTime), Explanation = instance.Explanation, EntityName = instance.EntityName, EntityPath = instance.EntityPath, ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options) }; return(result); }
public static OperationAlterTraits ToData(CdmOperationAlterTraits instance, ResolveOptions resOpt, CopyOptions options) { if (instance == null) { return(null); } OperationAlterTraits obj = OperationBasePersistence.ToData <OperationAlterTraits>(instance, resOpt, options); obj.TraitsToAdd = CopyDataUtils.ListCopyData(resOpt, instance.TraitsToAdd, options); obj.TraitsToRemove = CopyDataUtils.ListCopyData(resOpt, instance.TraitsToRemove, options); obj.ArgumentsContainWildcards = instance.ArgumentsContainWildcards; obj.ApplyTo = instance.ApplyTo; return(obj); }
public static DataPartitionPattern ToData(CdmDataPartitionPatternDefinition instance, ResolveOptions resOpt, CopyOptions options) { var result = new DataPartitionPattern { Name = instance.Name, LastFileStatusCheckTime = TimeUtils.GetFormattedDateString(instance.LastFileStatusCheckTime), LastFileModifiedTime = TimeUtils.GetFormattedDateString(instance.LastFileModifiedTime), Explanation = instance.Explanation, RootLocation = instance.RootLocation, RegularExpression = instance.RegularExpression.ToString(), Parameters = instance.Parameters, SpecializedSchema = instance.SpecializedSchema, ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options) }; return(result); }
public static EntityAttribute ToData(CdmEntityAttributeDefinition instance, ResolveOptions resOpt, CopyOptions options) { EntityAttribute obj = new EntityAttribute { Explanation = instance.Explanation, Name = instance.Name, IsPolymorphicSource = instance.IsPolymorphicSource, Entity = Utils.JsonForm(instance.Entity, resOpt, options), Purpose = Utils.JsonForm(instance.Purpose, resOpt, options), AppliedTraits = CopyDataUtils.ListCopyData(resOpt, instance.AppliedTraits? .Where(trait => trait is CdmTraitGroupReference || !(trait as CdmTraitReference).IsFromProperty), options), ResolutionGuidance = Utils.JsonForm(instance.ResolutionGuidance, resOpt, options), DisplayName = instance.GetProperty("displayName"), Description = instance.GetProperty("description"), Cardinality = Utils.CardinalitySettingsToData(instance.Cardinality) }; return(obj); }
public static EntityDeclarationDefinition ToData(CdmLocalEntityDeclarationDefinition instance, ResolveOptions resOpt, CopyOptions options) { var result = new EntityDeclarationDefinition { Type = EntityDeclarationDefinitionType.LocalEntity, EntityName = instance.EntityName, Explanation = instance.Explanation, ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options), LastFileStatusCheckTime = TimeUtils.GetFormattedDateString(instance.LastFileStatusCheckTime), LastFileModifiedTime = TimeUtils.GetFormattedDateString(instance.LastFileModifiedTime), LastChildFileModifiedTime = TimeUtils.GetFormattedDateString(instance.LastChildFileModifiedTime), EntityPath = instance.EntityPath, DataPartitions = Utils.ListCopyData <DataPartition>(resOpt, instance.DataPartitions, options, ensureNonIncremental(instance)), DataPartitionPatterns = Utils.ListCopyData <DataPartitionPattern>(resOpt, instance.DataPartitionPatterns, options, ensureNonIncremental(instance)), IncrementalPartitions = Utils.ListCopyData <DataPartition>(resOpt, instance.IncrementalPartitions, options, ensureIncremental(instance)), IncrementalPartitionPatterns = Utils.ListCopyData <DataPartitionPattern>(resOpt, instance.IncrementalPartitionPatterns, options, ensureIncremental(instance)) }; return(result); }
public static RelationshipEntity ToData(CdmE2ERelationship instance, string dbName, ResolveOptions resOpt, CopyOptions options, IDictionary <string, RelationshipEntity> relationship = null) { var properties = new Dictionary <string, JToken>(); if (instance.ExhibitsTraits != null && instance.ExhibitsTraits.Count > 0) { properties["cdm:exhibitsTraits"] = JToken.FromObject(CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits, options)); } var relationshipProperties = new RelationshipProperties { NamespaceProperty = new NamespaceModel { DatabaseName = dbName }, FromTableName = Utils.ExtractTableNameFromEntityPath(instance.FromEntity), ToTableName = Utils.ExtractTableNameFromEntityPath(instance.ToEntity), Properties = properties, PublishStatus = PublishStatus.PUBLISHED, RelationshipType = RelationshipType.MANYTOONE }; var relationshipName = instance.Name; if (string.IsNullOrEmpty(instance.Name)) { relationshipName = $"{relationshipProperties.FromTableName}_{relationshipProperties.ToTableName}_relationship"; } relationshipProperties.ColumnRelationshipInformations = new List <ColumnRelationshipInformation>(); relationshipProperties.ColumnRelationshipInformations.Add(new ColumnRelationshipInformation(instance.FromEntityAttribute, instance.ToEntityAttribute)); return(new RelationshipEntity { Name = relationshipName, Properties = relationshipProperties, Type = SASEntityType.RELATIONSHIP }); }
public static dynamic ToData(CdmObjectReference instance, ResolveOptions resOpt, CopyOptions options) { dynamic copy = null; if (!StringUtils.IsBlankByCdmStandard(instance.NamedReference)) { dynamic identifier = Utils.CopyIdentifierRef(instance, resOpt, options); if (instance.SimpleNamedReference) { return(identifier); } dynamic replace = CopyRefData(instance, resOpt, copy, identifier, options); if (replace != null) { copy = replace; } } else if (instance.ExplicitReference != null) { dynamic erCopy = instance.ExplicitReference.CopyData(resOpt, options); dynamic replace = CopyRefData(instance, resOpt, copy, erCopy, options); if (replace != null) { copy = replace; } } if (instance.Optional != null) { copy.Optional = instance.Optional; } if (instance.AppliedTraits.Count > 0) { copy.AppliedTraits = CopyDataUtils.ListCopyData(resOpt, instance.AppliedTraits, options); } return(copy); }
public static async Task <Attribute> ToData(CdmTypeAttributeDefinition instance, ResolveOptions resOpt, CopyOptions options) { var attribute = new Attribute { Name = instance.Name, DataType = DataTypeToData(instance.DataFormat), Description = instance.GetProperty("description"), Traits = CopyDataUtils.ListCopyData(resOpt, instance.AppliedTraits?.Where(trait => !trait.IsFromProperty)?.ToList(), options), }; await Utils.ProcessAnnotationsToData(instance.Ctx, attribute, instance.AppliedTraits); var t2pm = new TraitToPropertyMap(instance); var isHiddenTrait = t2pm.FetchTraitReference("is.hidden"); if (isHiddenTrait != null) { attribute.IsHidden = true; } return(attribute); }
public static Entity ToData(CdmEntityDefinition instance, ResolveOptions resOpt, CopyOptions options) { Entity obj = new Entity { Explanation = instance.Explanation, EntityName = instance.EntityName, ExtendsEntity = Utils.JsonForm(instance.ExtendsEntity, resOpt, options), ExtendsEntityResolutionGuidance = Utils.JsonForm(instance.ExtendsEntityResolutionGuidance, resOpt, options), ExhibitsTraits = CopyDataUtils.ListCopyData(resOpt, instance.ExhibitsTraits?.AllItems.Where(trait => !trait.IsFromProperty)?.ToList(), options) }; obj.SourceName = instance.GetProperty("sourceName") as string; obj.DisplayName = instance.GetProperty("displayName") as string; obj.Description = instance.GetProperty("description") as string; obj.Version = instance.GetProperty("version") as string; obj.CdmSchemas = instance.GetProperty("cdmSchemas") as List <string>; // after the properties so they show up first in doc obj.HasAttributes = CopyDataUtils.ListCopyData(resOpt, instance.Attributes, options); obj.AttributeContext = Utils.JsonForm(instance.AttributeContext, resOpt, options); return(obj); }
public static TypeAttribute ToData(CdmTypeAttributeDefinition instance, ResolveOptions resOpt, CopyOptions options) { if (instance == null) { return(null); } TypeAttribute obj = new TypeAttribute { Explanation = instance.Explanation, Description = instance.GetProperty("description"), Name = instance.Name, Purpose = Utils.JsonForm(instance.Purpose, resOpt, options), DataType = Utils.JsonForm(instance.DataType, resOpt, options), AppliedTraits = CopyDataUtils.ListCopyData(resOpt, instance.AppliedTraits?.Where(trait => !trait.IsFromProperty), options), AttributeContext = Utils.JsonForm(instance.AttributeContext, resOpt, options), ResolutionGuidance = Utils.JsonForm(instance.ResolutionGuidance, resOpt, options) }; obj.Projection = ProjectionPersistence.ToData(instance.Projection, resOpt, options); var isReadOnly = instance.GetProperty("isReadOnly"); obj.IsReadOnly = isReadOnly ? isReadOnly : null; var isNullable = instance.GetProperty("isNullable"); obj.IsNullable = isNullable ? isNullable : null; obj.SourceName = instance.GetProperty("sourceName"); var sourceOrdering = instance.GetProperty("sourceOrdering"); obj.SourceOrdering = sourceOrdering != 0 ? sourceOrdering : null; obj.DisplayName = instance.GetProperty("displayName"); obj.Description = instance.GetProperty("description"); var valueConstrainedToList = instance.GetProperty("valueConstrainedToList"); obj.ValueConstrainedToList = valueConstrainedToList ? valueConstrainedToList : null; var isPrimaryKey = instance.GetProperty("isPrimaryKey"); obj.IsPrimaryKey = isPrimaryKey ? isPrimaryKey : null; obj.MaximumLength = instance.GetProperty("maximumLength"); obj.MaximumValue = instance.GetProperty("maximumValue"); obj.MinimumValue = instance.GetProperty("minimumValue"); var dataFormat = instance.GetProperty("dataFormat"); obj.DataFormat = dataFormat != CdmDataFormat.Unknown ? dataFormat.ToString() : null; var defaultValue = instance.GetProperty("defaultValue"); var defValue = instance.GetProperty("defaultValue"); if (defValue is List <object> ) { obj.DefaultValue = defValue.Count > 0 ? JToken.FromObject(defValue) : null; } else { obj.DefaultValue = defValue; } return(obj); }
private static Dictionary <string, JToken> CreateProperties(CdmTypeAttributeDefinition instance, ResolveOptions resOpt, CopyOptions options) { var properties = new Dictionary <string, JToken>(); var displayName = instance.GetProperty("displayName"); var sourceName = instance.GetProperty("sourceName"); var description = instance.GetProperty("description"); var isReadOnly = instance.GetProperty("isReadOnly"); var maximumLength = instance.GetProperty("maximumLength"); var maximumValue = instance.GetProperty("maximumValue"); var minimumValue = instance.GetProperty("minimumValue"); var sourceOrdering = instance.GetProperty("sourceOrdering"); var valueConstrainedToList = instance.GetProperty("valueConstrainedToList"); var isPrimaryKey = instance.GetProperty("isPrimaryKey"); var defValue = instance.GetProperty("defaultValue"); if (displayName != null) { properties["cdm:displayName"] = JToken.FromObject(displayName); } if (instance.Explanation != null) { properties["cdm:explanation"] = JToken.FromObject(instance.Explanation); } if (sourceName != null) { properties["cdm:sourceName"] = JToken.FromObject(sourceName); } if (description != null) { properties["cdm:description"] = JToken.FromObject(description); } if (instance.AppliedTraits != null && instance.AppliedTraits.Count > 0) { properties["cdm:traits"] = JToken.FromObject(CopyDataUtils.ListCopyData(resOpt, instance.AppliedTraits? .Where(trait => trait is CdmTraitGroupReference || !(trait as CdmTraitReference).IsFromProperty), options), new JsonSerializer { NullValueHandling = NullValueHandling.Ignore, ContractResolver = new CamelCasePropertyNamesContractResolver() }); } if (isReadOnly != null) { properties["cdm:isReadOnly"] = JToken.FromObject(isReadOnly); } if (maximumLength != null) { properties["cdm:maximumLength"] = JToken.FromObject(maximumLength); } if (maximumValue != null) { properties["cdm:maximumValue"] = JToken.FromObject(maximumValue); } if (minimumValue != null) { properties["cdm:minimumValue"] = JToken.FromObject(minimumValue); } if (sourceOrdering != null && sourceOrdering != 0) { properties["cdm:sourceOrdering"] = JToken.FromObject(sourceOrdering); } if (valueConstrainedToList != null) { properties["cdm:valueConstrainedToList"] = JToken.FromObject(valueConstrainedToList); } if (isPrimaryKey != null) { properties["cdm:isPrimaryKey"] = JToken.FromObject(isPrimaryKey); } if (defValue != null) { properties["cdm:defaultValue"] = JToken.FromObject(defValue); } return(properties); }