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); }
public NatsFluentConfig(ICanAddEndpoint <TMessage, TCommand, TEvent, TRequest, TResponse> canAddEndpoint, NatsEndpointSettings <TMessage> settings) { _canAddEndpoint = canAddEndpoint; _settings = settings; }