private bool CheckPropertyDatatype(String value, ACS2.dataType propertyType) { switch (propertyType) { case ACS2.dataType.boolean: bool retBVal; return Boolean.TryParse(value, out retBVal); case ACS2.dataType.@byte: byte retByVal; return Byte.TryParse(value, out retByVal); case ACS2.dataType.@char: char retCVal; return Char.TryParse(value, out retCVal); case ACS2.dataType.@double: double retDVal; return Double.TryParse(value, System.Globalization.NumberStyles.Number, System.Globalization.CultureInfo.InvariantCulture, out retDVal); case ACS2.dataType.integer: Int32 retIVal; return Int32.TryParse(value, out retIVal); case ACS2.dataType.@string: return true; default: return false; } }
/// <summary> /// Check, if the datatype of the input port and the output port fits to each other /// Beside connecting the same datatypes, the following casts are allowed: /// byte to integer, byte to double /// char to integer, char to double /// integer to double /// double to integer /// </summary> /// <param name="outPortType"></param> /// <param name="inPortType"></param> /// <returns>true, if ports can be connected to each other</returns> private bool CheckInteroperabilityOfPorts(ACS2.dataType outPortType, ACS2.dataType inPortType) { if (outPortType == inPortType) { return true; } else if (outPortType == ACS2.dataType.@byte && inPortType == ACS2.dataType.integer) { return true; } else if (outPortType == ACS2.dataType.@byte && inPortType == ACS2.dataType.@double) { return true; } else if (outPortType == ACS2.dataType.@char && inPortType == ACS2.dataType.integer) { return true; } else if (outPortType == ACS2.dataType.@char && inPortType == ACS2.dataType.@double) { return true; } else if (outPortType == ACS2.dataType.integer && inPortType == ACS2.dataType.@double) { return true; } else if (outPortType == ACS2.dataType.@double && inPortType == ACS2.dataType.integer) { return true; } return false; }