コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }