/// <summary> /// Once this object is constructed the resource will be created/verified and the client is set up to "listen" for the Topic /// </summary> /// <param name="connectionString"></param> /// <param name="topicName"></param> /// <param name="subscriptionName"></param> public Subscription(string connectionString, string topicName, string subscriptionName, bool createIfNeeded, bool cleanupIfNeeded, bool peekOnly, ISerializationUtility serializationUtility) { ConnectionString = connectionString; Name = subscriptionName; TopicName = topicName; // TODO: Possibly inject configuration with a class. DeleteOnIdleTime = DELETE_ON_IDLE_TIME_DEFAULT; LockDuration = LOCK_DURATION_DEFAULT; MessageTimeToLive = MESSAGE_TIME_TO_LIVE_DEFAULT; WaitDelay = WAIT_DELAY_DEFAULT; _peekOnly = peekOnly; if (createIfNeeded) { Create(cleanupIfNeeded); } _serializationUtility = serializationUtility; //_subscriptionClient = new SubscriptionClient(new ServiceBusConnectionStringBuilder(ConnectionString), Name); _subscriptionClient = new SubscriptionClient(ConnectionString, TopicName, Name); RegisterCallback(); //ProcessMessages(); }
/// <summary> /// /// </summary> /// <param name="connectionString">The full connection string to the Azure Service Bus namespace.</param> /// <param name="queueName">The name of the queue.</param> /// <param name="createIfNeeded">Create the queue resource within the namespace.</param> public Queue(string connectionString, string queueName, bool createIfNeeded, ISerializationUtility serializationUtility) { ConnectionString = connectionString ?? throw new ArgumentNullException(nameof(connectionString), "The Azure connection string cannot be null"); Name = queueName ?? throw new ArgumentNullException(nameof(queueName), "The Azure queue name cannot be null"); if (createIfNeeded) { Create(); } _queueClient = new QueueClient(ConnectionString, Name, ReceiveMode.PeekLock, null); IsAsynchronous = true; _serializationUtility = serializationUtility; }
/// <summary> /// NOTE: If creating the topic within ASB there is currently no way to configure the Topic using this class. /// </summary> /// <param name="connectionString"></param> /// <param name="topicName"></param> /// <param name="createIfNeeded">Provision the Topic within ASB if needed.</param> public Topic(ITopicConfiguration configuration, ISerializationUtility serializationUtility) { var config = configuration as TopicConfiguration; if (config == null) { throw new ArgumentOutOfRangeException($"The type {nameof(TopicConfiguration)} is expected"); } ConnectionString = config.ConnectionString; Name = config.Name; if (config.CreateIfNeeded) { Create(config); } //var builder = new ServiceBusConnectionStringBuilder(ConnectionString); //_topicClient = new TopicClient(builder); _topicClient = new TopicClient(ConnectionString, Name); _serializationUtility = serializationUtility; }
public ProviderUtility(ISerializationUtility serialization, ISiteMenuUtility siteMenu, IAutoEndUtility autoEnd) { Serialization = serialization; SiteMenu = siteMenu; AutoEnd = autoEnd; }
public OAuth2LeggedAuthenticator(IRestClient client, IOAuthCredentials credentials, ISerializationUtility serializationUtility) { _client = client; _credentials = credentials; _serializationUtility = serializationUtility; }