public void Subscribe(Address address, Type messageType)
{
using (var connection = _connectionFactory.OpenConnection())
{
var subscriberAddress = address.ToString();
var messageTypeName = messageType.AssemblyQualifiedName;
var table = Configuration.Instance.GetSetting <string>("subscriptionTable");
var count = connection.GetCount(new { SubscriberAddress = subscriberAddress, MessageType = messageTypeName }, table);
if (count == 0)
{
connection.Insert(new { UniqueId = Guid.NewGuid(), SubscriberAddress = subscriberAddress, MessageType = messageTypeName }, table);
_memoryStore.Subscribe(address, messageType);
_logger.DebugFormat("Subscriber '{0}' subscribes message '{1}'.", subscriberAddress, messageTypeName);
}
}
}