public void ApplyEventNamespaceBinding(IMessageTypeParser messageTypeParser, IEventTypeProvider eventTypeProvider)
        {
            var eventNamespaceMessageType = MessageType.FirstOrDefault(messageTypeParser.IsEventNamespaceType);

            if (string.IsNullOrWhiteSpace(eventNamespaceMessageType))
            {
                return;
            }

            var parsed      = messageTypeParser.Parse(eventNamespaceMessageType);
            var messageType = eventTypeProvider.GetType(parsed.Namespace, parsed.Type);

            if (messageType.HasNoValue)
            {
                return;
            }

            var messageTypes = MessageType.Where(mt => mt != eventNamespaceMessageType).ToList();

            messageTypes.Add(MessageUrn.ForType(messageType.Value).ToString());
            MessageType = messageTypes.ToArray();
        }
 public EventNamespaceMessageDeserializer(JsonSerializer deserializer, IEventTypeProvider eventTypeProvider, IMessageTypeParser messageTypeParser)
 {
     _deserializer      = deserializer;
     _eventTypeProvider = eventTypeProvider;
     _messageTypeParser = messageTypeParser;
 }