CodeSharp.EventSourcing.MsmqUtilities.ExtractMsmqMessageLabelInformationForBackwardCompatibility C# (CSharp) Метод

ExtractMsmqMessageLabelInformationForBackwardCompatibility() приватный статический Метод

For backward compatibility, extract the V2.6 MSMQ label content (IdForCorrelation and WindowsIdentityName) into the V3.X transport message.
private static ExtractMsmqMessageLabelInformationForBackwardCompatibility ( System msmqMsg, Message result ) : void
msmqMsg System Received MSMQ message
result Message Transport message to be filled from MSMQ message label
Результат void
        private static void ExtractMsmqMessageLabelInformationForBackwardCompatibility(System.Messaging.Message msmqMsg, Message result)
        {
            if (string.IsNullOrWhiteSpace(msmqMsg.Label))
                return;

            if (msmqMsg.Label.Contains(TransportHeaderKeys.IdForCorrelation))
            {
                int idStartIndex = msmqMsg.Label.IndexOf(string.Format("<{0}>", TransportHeaderKeys.IdForCorrelation)) + TransportHeaderKeys.IdForCorrelation.Length + 2;
                int idCount = msmqMsg.Label.IndexOf(string.Format("</{0}>", TransportHeaderKeys.IdForCorrelation)) - idStartIndex;

                result.IdForCorrelation = msmqMsg.Label.Substring(idStartIndex, idCount);
            }

            if (msmqMsg.Label.Contains(Headers.WindowsIdentityName) && !result.Headers.ContainsKey(Headers.WindowsIdentityName))
            {
                int winStartIndex = msmqMsg.Label.IndexOf(string.Format("<{0}>", Headers.WindowsIdentityName)) + Headers.WindowsIdentityName.Length + 2;
                int winCount = msmqMsg.Label.IndexOf(string.Format("</{0}>", Headers.WindowsIdentityName)) - winStartIndex;

                result.Headers.Add(Headers.WindowsIdentityName, msmqMsg.Label.Substring(winStartIndex, winCount));
            }
        }