internal Consumer(With.Message.ISerializer messageSerializer, IModel model, IObserver <IMessage> consumer) { Model = model; _deliveries = new Subject <byte[]>(); _deliveries.ObserveOn(Scheduler.Default).Select(System.Text.Encoding.UTF8.GetString).Select(messageSerializer.Deserialize).Subscribe(consumer); }
internal static void Publish(string exchangeName, string routingKey, With.Message.ISerializer messageSerializer, RabbitMQ.Client.IModel model, With.Message.IMessage message) { string content = messageSerializer.Serialize(message); byte[] body = Encoding.Encode(content); IBasicProperties properties = model.CreateBasicProperties(); model.BasicPublish(exchangeName, routingKey, properties, body); }
public Factory(Common.IConnectionFactory connectionFactory, With.Message.ISerializer messageSerializer) { _connectionFactory = connectionFactory; _messageSerializer = messageSerializer; }
public Instance(Configuration.ISettings configurationSettings, Common.IConnectionFactory connectionFactory, With.Message.ISerializer messageSerializer) { _configurationSettings = configurationSettings; _connectionFactory = connectionFactory; _messageSerializer = messageSerializer; }
public static IConsumer Subscribe(With.Message.ISerializer messageSerializer, IModel model, IObserver <IMessage> consumer) { return(new Consumer(messageSerializer, model, consumer)); }