private DTField ModifyForRestApi(DTField src) { DTField dst = new DTField(); dst.Name = src.Name; if (src.Schema != null) { dst.Schema = ModifyForRestApi(src.Schema); } return(dst); }
static DTSchema make_schema(ELDefinition dataInfo) { var schema = new DTSchema(); switch (dataInfo.Type) { case ELDataType.None: if (dataInfo.Reference != null) { return(make_schema(dataInfo.Reference)); } break; case ELDataType.State: { schema.Type = "Enum"; schema.ValueSchema = "integer"; schema.EnumValues = new List <DTEnumValue>(); foreach (var edt in dataInfo.EdtInfos) { var enumValue = new DTEnumValue(); schema.EnumValues.Add(enumValue); string name; if (edt.StateEn != null) { name = DTLocalizableConverter.MakeDigitalTwinId(edt.StateEn); } else { name = $"edt{edt.Edt:x}"; } enumValue.Name = name; enumValue.EnumValue = edt.Edt; enumValue.DisplayName = new DTLocalizable { { "en", edt.StateEn }, { "ja", edt.StateJa } }; } break; } case ELDataType.Object: { schema.Type = "Object"; schema.Fields = new List <DTField>(); foreach (var dataInfo2 in dataInfo.DataInfos) { var field = new DTField(); schema.Fields.Add(field); field.Name = dataInfo2.Name; var schema2 = make_schema(dataInfo2); field.Schema = schema2; } break; } case ELDataType.DateTime: { schema.Type = "dateTime"; break; } case ELDataType.Time: { schema.Type = "time"; break; } case ELDataType.Raw: { schema.Type = "string"; break; } case ELDataType.Array: { schema.Type = "Array"; break; } case ELDataType.Bitmap: { schema.Type = "Object"; schema.Fields = new List <DTField>(); foreach (var bitmapInfo in dataInfo.BitmapInfos) { var field = new DTField(); schema.Fields.Add(field); field.Name = bitmapInfo.Name; var schema2 = make_schema(bitmapInfo.Value); field.Schema = schema2; } break; } case ELDataType.Level: { schema.Type = "integer"; break; } case ELDataType.Number: { switch (dataInfo.NumFormat) { case ELNumberFormat.Int8: case ELNumberFormat.Int16: case ELNumberFormat.Int32: case ELNumberFormat.Uint8: case ELNumberFormat.Uint16: schema.Type = "integer"; break; case ELNumberFormat.Uint32: schema.Type = "long"; break; default: schema = null; System.Diagnostics.Debugger.Break(); break; } break; } case ELDataType.NumericValue: { schema.Type = "integer"; break; } case ELDataType.OneOf: { schema.Type = "Object"; schema.Fields = new List <DTField>(); foreach (var dataInfo2 in dataInfo.DataInfos) { DTField field = new DTField(); schema.Fields.Add(field); field.Name = dataInfo2.Name; var schema2 = make_schema(dataInfo2); field.Schema = schema2; } break; } default: schema = null; System.Diagnostics.Debugger.Break(); break; } return(schema); }