public static EndpointConfiguration UseOrderedMessaging(this EndpointConfiguration endpointConfig, params Type[] types)
        {
            var config = new OrderedProcessingConfig(types.ToList());

            endpointConfig.GetSettings().Set <OrderedProcessingConfig>(config);
            endpointConfig.EnableFeature <OrderedProcessingFeature>();
            return(endpointConfig);
        }
 public OrderedIncomingMessageBehavior(OrderedProcessingConfig config)
 {
     _messageTypeLocks = config.MessageTypes.ToDictionary(t => t, t => new object());
     foreach (var messageType in _messageTypeLocks)
     {
         State.Sequences.TryAdd(messageType.Key, 0);
     }
 }
        public static EndpointConfiguration UseOrderedMessaging(this EndpointConfiguration endpointConfig, Action <OrderedProcessingConfig> orderConfig)
        {
            var config = new OrderedProcessingConfig();

            orderConfig(config);
            endpointConfig.GetSettings().Set <OrderedProcessingConfig>(config);
            endpointConfig.EnableFeature <OrderedProcessingFeature>();
            return(endpointConfig);
        }
 public OrderedOutgoingMessageBehavior(OrderedProcessingConfig config)
 {
     _messageTypes = new HashSet <Type>(config.MessageTypes);
 }