public static bool HasHeader(this FaultMessageReceived envelope, string header)
        {
            if (envelope.Headers == null)
            {
                return(false);
            }

            return(envelope.Headers.ContainsKey(header));
        }
        public static IEnumerable <MessageType> MessageTypes(this FaultMessageReceived transportMessageReceived)
        {
            var result = new List <MessageType>();

            if (!transportMessageReceived.HasHeader(Headers.EnclosedMessageTypes))
            {
                return(result);
            }

            return(transportMessageReceived.Headers[Headers.EnclosedMessageTypes].Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList()
                   .Select(s => new MessageType(s)));
        }
        public void Handle(FaultMessageReceived message)
        {
            var messageTypes = message.Headers.MessageTypes().Select(s => new MessageType(s)).ToList();

            if (!messageTypes.Any())
            {
                return;
            }

            foreach (var messageType in messageTypes)
            {
                RegisterMessageType(MessageIntent.Unknown, messageType);
            }
        }