コード例 #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="dependencyParams">Notification parameters to use</param>
        protected SqlDependencyProvider(SqlDependencyParams dependencyParams)
        {
            if (dependencyParams == null)
            {
                throw new ArgumentNullException(nameof(dependencyParams));
            }

            Parameters = dependencyParams;
            SyncLock = new object();
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="dependencyParams">Notification parameters to use</param>
 /// <param name="pollingPeriod">Polling period</param>
 public PollingSqlDependencyProvider(SqlDependencyParams dependencyParams, TimeSpan? pollingPeriod)
     : base(dependencyParams)
 {
     if (pollingPeriod.HasValue
         && (pollingPeriod.Value.TotalMilliseconds < 0))
     {
         throw new ArgumentNullException(nameof(pollingPeriod));
     }
     _pollingPeriod = pollingPeriod ?? DefaultPollingPeriod;
 }
コード例 #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="dependencyParams">Notification parameters to use</param>
 public BrokerSqlDependencyProvider(SqlDependencyParams dependencyParams)
     : base(dependencyParams)
 {
 }
コード例 #4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="dependencyParams">Notification parameters to use</param>
 public BrokerSqlDependencyProvider(SqlDependencyParams dependencyParams)
     : base(dependencyParams)
 {
 }
コード例 #5
0
        /// <summary>
        /// Creates a provider implementation
        /// </summary>
        /// <param name="dependencyParams">Dependency monitoring parameters</param>
        /// <param name="providerType">Type of the provider to create</param>
        /// <param name="serviceBrokerQueue">Queue name for the service broker implementation</param>
        /// <param name="periodForPollingProvider">Period for polling implementation</param>
        /// <returns>Sql Dependency Provider instance</returns>
        public static SqlDependencyProvider Create(SqlDependencyParams dependencyParams,
			SqlDependencyProviderType providerType,
			string serviceBrokerQueue, TimeSpan? periodForPollingProvider)
        {
            // Validate
            if (dependencyParams == null)
            {
                throw new ArgumentNullException(nameof(dependencyParams));
            }
            if (periodForPollingProvider.HasValue
                && (periodForPollingProvider.Value.TotalMilliseconds < 0))
            {
                throw new ArgumentNullException(nameof(periodForPollingProvider));
            }
            serviceBrokerQueue = string.IsNullOrWhiteSpace(serviceBrokerQueue) ? null : serviceBrokerQueue.Trim();

            // Make a copy & validate
            dependencyParams = dependencyParams.Clone() as SqlDependencyParams;
            if (dependencyParams == null)
            {
                throw new ArgumentNullException(nameof(dependencyParams));
            }
            dependencyParams.ValidateAndAdjust();

            // Check service broker availability
            if ((providerType == SqlDependencyProviderType.Polling)
                || ((providerType == SqlDependencyProviderType.Auto)
                    && !IsServiceBrokerEnabled(dependencyParams.ConnectionString, serviceBrokerQueue)))
            {
                return new PollingSqlDependencyProvider(dependencyParams, periodForPollingProvider);
            }
            return new BrokerSqlDependencyProvider(dependencyParams);
        }
コード例 #6
0
        /// <summary>
        /// Creates a provider implementation
        /// </summary>
        /// <param name="dependencyParams">Dependency monitoring parameters</param>
        /// <param name="providerType">Type of the provider to create</param>
        /// <param name="serviceBrokerQueue">Queue name for the service broker implementation</param>
        /// <returns>Sql Dependency Provider instance</returns>
        public static SqlDependencyProvider Create(SqlDependencyParams dependencyParams,
			SqlDependencyProviderType providerType, string serviceBrokerQueue)
        {
            return Create(dependencyParams, providerType, serviceBrokerQueue, null);
        }
コード例 #7
0
        /// <summary>
        /// Creates a provider implementation
        /// </summary>
        /// <param name="dependencyParams">Dependency monitoring parameters</param>
        /// <param name="providerType">Type of the provider to create</param>
        /// <returns>Sql Dependency Provider instance</returns>
        public static SqlDependencyProvider Create(SqlDependencyParams dependencyParams,
			SqlDependencyProviderType providerType)
        {
            return Create(dependencyParams, providerType, null, null);
        }