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