Ejemplo n.º 1
0
        WithNatsEndpoint <TServiceMessage, TMessage, TCommand, TEvent, TRequest, TResponse>(this ICanAddEndpoint <TMessage, TCommand, TEvent, TRequest, TResponse> canAddEndpoint,
                                                                                            Action <NatsEndpointSettings <TMessage> > setSettings)
            where TMessage : class
            where TServiceMessage : class
            where TCommand : class, TMessage
            where TEvent : class, TMessage
            where TRequest : class, TMessage
            where TResponse : class, TMessage
        {
            var settings = new NatsEndpointSettings <TMessage>();

            setSettings(settings);
            return(new NatsFluentConfig <TServiceMessage, TMessage, TCommand, TEvent, TRequest, TResponse>(canAddEndpoint, settings));
        }
        public NatsServiceEndpointProvider(NatsEndpointSettings <TMessage> settings, IMessageSerializer serializer, IMessageDeserializerFactory deserializerFactory, Func <Assembly, bool> assemblyFilter = null, Func <Type, bool> typeFilter = null, Func <IDictionary <string, string>, bool> propertyFilter = null, Func <TMessage, Dictionary <string, string> > propertyProvider = null)
            : base(settings.ServiceName)
        {
            _serializer          = serializer;
            _deserializerFactory = deserializerFactory;
            _assemblyFilter      = assemblyFilter;
            _typeFilter          = typeFilter;
            _propertyFilter      = propertyFilter;
            _propertyProvider    = propertyProvider;

            if (string.IsNullOrEmpty(settings.Connection?.Url))
            {
                throw new InvalidOperationException(string.Format("For service endpoint '{0}', please specify a broker URL to connect to.", settings.ServiceName));
            }

            _connection = SharedConnectionFactory.Get(settings.Connection.Url, settings.Connection.IsShared);
        }
Ejemplo n.º 3
0
 public NatsFluentConfig(ICanAddEndpoint <TMessage, TCommand, TEvent, TRequest, TResponse> canAddEndpoint,
                         NatsEndpointSettings <TMessage> settings)
 {
     _canAddEndpoint = canAddEndpoint;
     _settings       = settings;
 }