public static TrackingIdHeader Read(MessageHeaders messageHeaders) { TrackingIdHeader trackingIdHeader; if (!TrackingIdHeader.TryRead(messageHeaders, out trackingIdHeader)) { throw new ArgumentException(SRClient.TrackingIDHeaderMissing, "messageHeaders"); } return(trackingIdHeader); }
internal static string GetTrackingId(MessageProperties messageProperties, MessageHeaders messageHeaders, WebOperationContext webOperationContext) { string id; TrackingIdMessageProperty trackingIdMessageProperty; TrackingIdHeader trackingIdHeader; if (!TrackingIdMessageProperty.TryGet <TrackingIdMessageProperty>(messageProperties, out trackingIdMessageProperty)) { string str = null; if (webOperationContext != null) { str = webOperationContext.IncomingRequest.Headers.Get("TrackingId"); } if (TrackingIdHeader.TryRead(messageHeaders, out trackingIdHeader)) { id = trackingIdHeader.Id; } else if (messageHeaders.RelatesTo != null) { Guid trackingId = TrackingContext.GetTrackingId(messageHeaders.RelatesTo); id = TrackingContext.AppendRoleInstanceInformationToTrackingId(trackingId.ToString()); } else if (messageHeaders.MessageId != null) { Guid guid = TrackingContext.GetTrackingId(messageHeaders.MessageId); id = TrackingContext.AppendRoleInstanceInformationToTrackingId(guid.ToString()); } else if (string.IsNullOrEmpty(str)) { Guid guid1 = Guid.NewGuid(); id = TrackingContext.AppendRoleInstanceInformationToTrackingId(guid1.ToString()); } else { id = TrackingContext.AppendRoleInstanceInformationToTrackingId(str); } TrackingIdMessageProperty.TryAdd(messageProperties, id); } else { id = trackingIdMessageProperty.Id; } return(id); }
public static bool TryRead(MessageHeaders messageHeaders, out TrackingIdHeader trackingIdHeader) { trackingIdHeader = null; if (messageHeaders == null) { return(false); } int num = messageHeaders.FindHeader("TrackingId", "http://schemas.microsoft.com/servicebus/2010/08/protocol/"); if (num >= 0) { using (XmlDictionaryReader readerAtHeader = messageHeaders.GetReaderAtHeader(num)) { readerAtHeader.ReadStartElement(); trackingIdHeader = new TrackingIdHeader(readerAtHeader.ReadString()); } } return(trackingIdHeader != null); }
public static bool TryAddOrUpdate(MessageHeaders messageHeaders, string trackingId) { if (messageHeaders == null) { return(false); } TrackingIdHeader trackingIdHeader = new TrackingIdHeader(trackingId); int num = messageHeaders.FindHeader("TrackingId", "http://schemas.microsoft.com/servicebus/2010/08/protocol/"); if (num < 0) { messageHeaders.Add(trackingIdHeader); } else { messageHeaders.RemoveAt(num); messageHeaders.Add(trackingIdHeader); } return(true); }