private DTEnumValue ModifyForRestApi(DTEnumValue src) { DTEnumValue dst = new DTEnumValue(); dst.Id = src.Id; if (src.Type != null) { dst.Type = new StringList { OutputArray = true }; dst.Type.AddRange(src.Type); } dst.Name = src.Name; dst.EnumValue = src.EnumValue; if (src.DisplayName != null) { dst.DisplayName = new DTLocalizable { OutputString = true }; foreach (var kvp in src.DisplayName) { dst.DisplayName.Add(kvp.Key, kvp.Value); } } 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); }