Пример #1
0
        Timeline.Event GetEvent(Messaging.Event evt)
        {
            var networkMsg = evt as Messaging.NetworkMessageEvent;

            if (networkMsg != null)
            {
                ActivityEventType?type = null;
                if (networkMsg.MessageType == Messaging.MessageType.Request)
                {
                    type = ActivityEventType.Begin;
                }
                else if (networkMsg.MessageType == Messaging.MessageType.Response)
                {
                    type = ActivityEventType.End;
                }
                if (type != null && networkMsg.MessageId != null)
                {
                    var netEvt = new Timeline.NetworkMessageEvent(
                        evt.Trigger,
                        GetDirectionDisplayNamePrefix(networkMsg.MessageDirection) + networkMsg.DisplayName,
                        networkMsg.MessageId,
                        type.Value,
                        ToNetworkMessageDirection(networkMsg.MessageDirection)
                        );
                    bool IsBadHttpCode(int code) => code < 200 || code >= 300;

                    netEvt.Status = networkMsg is Messaging.HttpMessage http &&
                                    IsBadHttpCode(http.StatusCode.GetValueOrDefault(200))
                                                        ? ActivityStatus.Error : ActivityStatus.Unspecified;
                    netEvt.SetTags(networkMsg.Tags);
                    return(netEvt);
                }
            }
            var cancellation = evt as Messaging.RequestCancellationEvent;

            if (cancellation != null)
            {
                Timeline.Event netEvt = new Timeline.NetworkMessageEvent(
                    evt.Trigger,
                    "Canceled: " + cancellation.DisplayName,
                    cancellation.RequestMessageId,
                    ActivityEventType.End,
                    NetworkMessageDirection.Unknown
                    );
                netEvt.SetTags(cancellation.Tags);
                return(netEvt);
            }
            return(null);
        }
Пример #2
0
        Timeline.Event GetEvent(Messaging.Event evt)
        {
            var networkMsg = evt as Messaging.NetworkMessageEvent;

            if (networkMsg != null)
            {
                ActivityEventType?type = null;
                if (networkMsg.MessageType == Messaging.MessageType.Request)
                {
                    type = ActivityEventType.Begin;
                }
                else if (networkMsg.MessageType == Messaging.MessageType.Response)
                {
                    type = ActivityEventType.End;
                }
                if (type != null && networkMsg.MessageId != null)
                {
                    Timeline.Event netEvt = new Timeline.NetworkMessageEvent(
                        evt.Trigger,
                        GetDirectionDisplayNamePrefix(networkMsg.MessageDirection) + networkMsg.DisplayName,
                        networkMsg.MessageId,
                        type.Value,
                        ToNetworkMessageDirection(networkMsg.MessageDirection)
                        );
                    netEvt.SetTags(networkMsg.Tags);
                    return(netEvt);
                }
            }
            var cancellation = evt as Messaging.RequestCancellationEvent;

            if (cancellation != null)
            {
                Timeline.Event netEvt = new Timeline.NetworkMessageEvent(
                    evt.Trigger,
                    "Cancelled: " + cancellation.DisplayName,
                    cancellation.RequestMessageId,
                    ActivityEventType.End,
                    NetworkMessageDirection.Unknown
                    );
                netEvt.SetTags(cancellation.Tags);
                return(netEvt);
            }
            return(null);
        }