示例#1
0
        public static T FromData <T>(CdmCorpusContext ctx, CdmObjectType objectType, JToken obj)
            where T : CdmOperationBase
        {
            if (obj == null)
            {
                return(default(T));
            }

            CdmOperationBase operation     = ctx.Corpus.MakeObject <CdmOperationBase>(objectType);
            CdmOperationType operationType = OperationTypeConvertor.FromObjectType(objectType);

            if (obj["$type"] != null && !StringUtils.EqualsWithIgnoreCase(obj["$type"].ToString(), OperationTypeConvertor.OperationTypeToString(operationType)))
            {
                Logger.Error(ctx, Tag, nameof(FromData), null, CdmLogCode.ErrPersistProjInvalidOpsType, obj["$type"].ToString());
            }
            else
            {
                operation.Type = operationType;
            }

            operation.Condition   = obj["condition"]?.ToString();
            operation.Explanation = obj["explanation"]?.ToString();
            operation.SourceInput = (bool?)obj["sourceInput"];

            return(operation as T);
        }
示例#2
0
        internal static string OperationTypeToString(CdmOperationType opType)
        {
            switch (opType)
            {
            case CdmOperationType.AddCountAttribute:
                return("addCountAttribute");

            case CdmOperationType.AddSupportingAttribute:
                return("addSupportingAttribute");

            case CdmOperationType.AddTypeAttribute:
                return("addTypeAttribute");

            case CdmOperationType.ExcludeAttributes:
                return("excludeAttributes");

            case CdmOperationType.ArrayExpansion:
                return("arrayExpansion");

            case CdmOperationType.CombineAttributes:
                return("combineAttributes");

            case CdmOperationType.RenameAttributes:
                return("renameAttributes");

            case CdmOperationType.ReplaceAsForeignKey:
                return("replaceAsForeignKey");

            case CdmOperationType.IncludeAttributes:
                return("includeAttributes");

            case CdmOperationType.AddAttributeGroup:
                return("addAttributeGroup");

            case CdmOperationType.AlterTraits:
                return("alterTraits");

            case CdmOperationType.AddArtifactAttribute:
                return("addArtifactAttribute");

            case CdmOperationType.Error:
            default:
                throw new InvalidOperationException();
            }
        }