public FieldValue(TableFieldValues parent, string fieldName, object val, bool unique, FieldValueType type) { Parent = parent; FieldName = fieldName; Value = val; UniqueField = unique; Type = type; }
/// <summary> /// Recursive call to get table field values the specified semantic type. /// </summary> protected void CreateTableFieldValueList(List<TableFieldValues> tfvList, string st, dynamic signal) { ISemanticTypeStruct sts = rsys.SemanticTypeSystem.GetSemanticTypeStruct(st); TableFieldValues tfvEntry = new TableFieldValues(st, sts.Unique); tfvList.Add(tfvEntry); sts.SemanticElements.ForEach(child => { string fieldName = "FK_" + child.Name + "ID"; tfvEntry.FieldValues.Add(new FieldValue(tfvEntry, fieldName, null, child.Element.Struct.Unique, FieldValueType.SemanticType)); object childSignal = GetChildSignal(signal, child); CreateTableFieldValueList(tfvList, child.Name, childSignal); }); foreach (INativeType nt in sts.NativeTypes) { // Acquire value through reflection. object val = nt.GetValue(rsys.SemanticTypeSystem, signal); tfvEntry.FieldValues.Add(new FieldValue(tfvEntry, nt.Name, val, nt.UniqueField, FieldValueType.NativeType)); } }