Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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)
     });
 }
Beispiel #4
0
 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)
     });
 }
Beispiel #5
0
 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)
     });
 }
Beispiel #6
0
 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)
     });
 }
Beispiel #7
0
 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)
     });
 }
Beispiel #8
0
 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)
     });
 }
Beispiel #9
0
 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)
     });
 }
Beispiel #10
0
 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")
     });
 }
Beispiel #12
0
        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);
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        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);
        }
Beispiel #17
0
        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
            });
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        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);
        }
Beispiel #20
0
        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);
        }
Beispiel #22
0
        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);
        }