public static string GetTranslationValue(this Oms oms, InstanceHandle sourceInstance, InstanceHandle relationshipInstance, InstanceHandle languageInstance, string defaultValue = null) { InstanceHandle keyTTC = oms.GetRelatedInstance(sourceInstance, relationshipInstance); InstanceHandle[] keyTTCValues = oms.GetRelatedInstances(keyTTC, oms.GetInstance(KnownRelationshipGuids.Translatable_Text_Constant__has__Translatable_Text_Constant_Value)); for (int i = 0; i < keyTTCValues.Length; i++) { InstanceHandle ihLang = oms.GetRelatedInstance(keyTTCValues[i], oms.GetInstance(KnownRelationshipGuids.Translatable_Text_Constant_Value__has__Language)); if (ihLang == languageInstance) { return(oms.GetAttributeValue(keyTTCValues[i], oms.GetInstance(KnownAttributeGuids.Text.Value), defaultValue)); } } return(defaultValue); }
public static string GetStringValue(this Oms oms, InstanceHandle[] stringComponents, InstanceHandle currentInstance) { if (stringComponents == null) { return(null); } StringBuilder sb = new StringBuilder(); for (int i = 0; i < stringComponents.Length; i++) { InstanceHandle ihParent = oms.GetParentClassInstance(stringComponents[i]); if (oms.GetInstanceID(ihParent) == KnownInstanceGuids.Classes.ExtractSingleInstanceStringComponent) { InstanceHandle ihRelationship = oms.GetRelatedInstance(stringComponents[i], oms.GetInstance(KnownRelationshipGuids.Extract_Single_Instance_String_Component__has__Relationship)); InstanceHandle relInst = oms.GetRelatedInstance(currentInstance, ihRelationship); if (relInst.IsEmpty) { // FIXME } sb.Append(GetInstanceTitle(oms, relInst)); } else if (oms.GetInstanceID(ihParent) == KnownInstanceGuids.Classes.InstanceAttributeStringComponent) { InstanceHandle ihAttribute = oms.GetRelatedInstance(stringComponents[i], oms.GetInstance(KnownRelationshipGuids.Instance_Attribute_String_Component__has__Attribute)); string value = oms.GetAttributeValue <string>(currentInstance, ihAttribute); sb.Append(value); } else if (oms.GetInstanceID(ihParent) == KnownInstanceGuids.Classes.TextConstantStringComponent) { string value = oms.GetAttributeValue <string>(stringComponents[i], oms.GetInstance(KnownAttributeGuids.Text.Value)); sb.Append(value); } } return(sb.ToString()); }