in src/NMS.AMQP/Provider/Amqp/AmqpMessageIdHelper.cs [212:262]
public static object ToIdObject(string origId)
{
if (origId == null) {
return null;
}
if (!HasMessageIdPrefix(origId)) {
// We have a string without any "ID:" prefix, it is an
// application-specific String, use it as-is.
return origId;
}
try
{
if (HasAmqpNoPrefix(origId, NMS_ID_PREFIX_LENGTH))
{
// Prefix telling us there was originally no "ID:" prefix,
// strip it and return the remainder
return origId.Substring(NMS_ID_PREFIX_LENGTH + AMQP_NO_PREFIX_LENGTH);
}
else if (HasAmqpStringPrefix(origId, NMS_ID_PREFIX_LENGTH))
{
return origId.Substring(NMS_ID_PREFIX_LENGTH + AMQP_STRING_PREFIX_LENGTH);
}
else if (HasAmqpBinaryPrefix(origId, NMS_ID_PREFIX_LENGTH))
{
string hexString = origId.Substring(NMS_ID_PREFIX_LENGTH + AMQP_BINARY_PREFIX_LENGTH).ToUpper();
return ConvertHexStringToBinary(hexString, origId);
}
else if (HasAmqpUlongPrefix(origId, NMS_ID_PREFIX_LENGTH))
{
string ulongString = origId.Substring(NMS_ID_PREFIX_LENGTH + AMQP_ULONG_PREFIX_LENGTH);
return Convert.ToUInt64(ulongString);
}
else if (HasAmqpUuidPrefix(origId, NMS_ID_PREFIX_LENGTH))
{
string guidString = origId.Substring(NMS_ID_PREFIX_LENGTH + AMQP_UUID_PREFIX_LENGTH);
return Guid.Parse(guidString);
}
else
{
// We have a string without any encoding prefix needing processed,
// so transmit it as-is, including the "ID:"
return origId;
}
}
catch (Exception e)
{
throw new NMSException("Id Conversion Failure. Provided Id: " + origId, e);
}
}